Удаленное отклонение (неглубокое обновление не допускается) после изменения Git удаленного URL-адреса

У меня есть проект под управлением Git, который я работал как на сервере, так и на моем локальном компьютере. Первоначально у меня было задание удаленного источника как мой локальный компьютер, но теперь я хотел бы изменить его на BitBucket.

На сервере я использовал команду

git remote set-url origin bitbucket_address

Но теперь, когда я пытаюсь нажать мой проект, я получаю сообщение об ошибке

 ! [remote rejected] master -> master (shallow update not allowed)

Что вызывает это и как его исправить?

Ответы

Ответ 1

Как вам кажется, вы использовали git clone --depth <number> для клонирования вашей локальной версии. Это приводит к мелкому клону. Одно ограничение такого клона состоит в том, что вы не можете отталкивать его в новый репозиторий.

Это означает, что вам нужно очистить репозиторий. Для этого вам нужно будет снова добавить старый пульт.

git remote add old <path-to-old-remote>

После этого мы используем git fetch для извлечения оставшейся истории из старого удаленного (как предложено в этом ответе).

git fetch --unshallow old

И теперь вы сможете использовать свой новый удаленный репозиторий.


Примечание. После того, как вы не очистите свой клон, вы, очевидно, снова удалите старый пульт.

Ответ 2

Если ваше репо origin, а исходное репо - upstream:

git fetch --unshallow upstream