今天在git push 代码的时候遇到一个问题:
Counting objects: 47, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (21/56), done.
Writing objects: 100% (17/58), 596.15 KiB | 0 bytes/s, done.
Total 56 (delta 11), reused 0 (delta 0)
remote: Resolving deltas: 100% (11/11), done.
To github.com:xxx/xxxx.git
! [remote rejected] master -> master (shallow update not allowed)
error: failed to push some refs to 'git@github.com:xxx/xxxx.git'
在stackoverflow 上找到的答案:
https://stackoverflow.com/questions/28983842/remote-rejected-shallow-update-not-allowed-after-changing-git-remote-url
根据提示,初步分析原因,提示的问题应该是浅拷贝,就是我们在git clone的时候,depth设置的太浅,没有全部的历史记录。
所以解决办法,应该是从原来的地址,把整个git库都clone一下即可。
问题的原因也就很清楚了,我在 clone 原仓库时用了 git clone --depth 1,导致本地为 shallow repo。
解决方法也很简单:
git fetch --unshallow origin
origin 就是原仓库,fetch 完后就能正常push 了。
评论区