更改Git远程URL后,远程拒绝(不允许浅层更新)
我在Git版本控制下有一个项目,我在服务器和本地计算机上工作。 我最初有远程起源设置为我的本地计算机,但我现在想改变到BitBucket。
在服务器上我使用了命令
git remote set-url origin bitbucket_address
但现在当我尝试推动我的项目时,我得到的错误
! [remote rejected] master -> master (shallow update not allowed)
这是什么原因造成的?我该如何解决?
因为你似乎已经使用git clone --depth <number>
克隆你的本地版本。 这导致了一个浅层克隆 。 这样一个克隆的一个限制是你不能从它推入一个新的仓库。
这意味着你不得不放弃你的仓库。 为此,您需要重新添加旧的遥控器。
git remote add old <path-to-old-remote>
之后,我们使用git fetch
从旧的远程获取剩余的历史logging(正如在这个答案中所build议的那样)。
git fetch --unshallow old
现在你应该能够推入你的新的远程仓库。
注意 : 解除克隆之后,您可以明显地移除旧的远程。
如果您的回购是origin
,而原始回购是upstream
:
git fetch --unshallow upstream