更改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