Когда появляется данная ошибка
Ошибка shallow update not allowed появляется, когда вы пытаетесь запушить локальный репозиторий с неполной историей в новый удаленный.
То есть:
- Заходите в папку с существующим гит
- Добавляете свой удаленный репозиторий git remote add my_repo https://github.com/user/repo.git
- Пытаетесь запушить туда git push my_repo master
- Получаете ошибку, что удаленный репозиторий не может принять ваш неполный.

Как сделать неполный репозиторий
Неполный репозиторий создается командой git clone с параметром --depth N, где N - количество последних коммитов, которые выкачать.
Например команда может выглядеть так:
git clone https://github.com/headzoo/surf --depth 10
Если вы выкачиваете не все коммиты, то отправить правки обратно можно будет только в репозиторий, в котором есть вся история (тот же исходный, откуда скачивали).
Как проверить полный ли ваш репозиторий
Первый способ, проверить первый доступный коммит. Введите:
git log --reverse
Смотрите пометки у первого коммита, если там есть grafted - значит до него есть еще коммиты в удаленном репо, но они не доступны. Ваш репозиторий не полный.

Второй способ, показывает как создавался гит, а не текущее состояние.
Если ваша версия гит 2.15 или новее, запустите:
git rev-parse --is-shallow-repository
Команда выведет true, если ваш репозиторий не полный, в ином случае false.
Если версия старше 2.15, команда:
[ -f $(git rev-parse --git-dir)/shallow ] && echo true || echo false
Как исправить ошибку
Если есть доступ в старый репозиторий
Если есть доступ в старый удаленный репозиторий, в котором хранится полная история, воспользуйтесь командой:
git fetch --unshallow origin-old
Где origin-old - имя remote репозитория, если удалили уже его - добавьте заново командой git remote add.
Когда нет доступа в старый репозиторий
Путь простой - пересоздать гит
Самое простое - удалить гит и создать заново. Так мы потеряем историю коммитов, но гит уже будет полный и его можно будет запушить хоть куда.
Чтобы удалить гит, зайдите в папку проекта и удалите папку .git либо вручную, либо командой:
rm -rf .git
После этого заново создайте гит. Как создать гит в Битрикс, я писал в одной из предыдущих статей.
Путь сложнее - перебазирование истории
Можно оставить доступную историю, но указать что коммитов, которых у нас нет - не было вовсе. Стоит понять, что если доступа в старый удаленный репозиторий нет, то полную историю нам взять неоткуда - будем работать с тем, что доступно.
Инструкция:
git rebase -i --root
git commit --amend --no-edit
git rebase --continue
git rebase -i --root - начинаем перебазирование. У вас откроется окно редактора, у первого коммита надо заменить pick на edit.
Если открылся vim (как у меня), то для редактирования надо нажать на клавиатуре кнопку Insert. Отредактировать текст, нажать Esc. После ввести !wq, нажать Enter. Редактор сохранит правки и закроется.

git commit --amend --no-edit - провалидировать коммит
git rebase --continue - завершить перебазирование.
После проделанных команд, гит будет считаться полным. Вот на скрине пометка grafted пропала:
