有很多答案说明git 1.9消除了浅层克隆的局限性。尽管如此,我正在使用2.6.1并仍然存在以下基本问题:
首先,我在某处创建一个空的仓库:
cd /tmp
mkdir target
cd target
git init
然后,我浅克隆一些存储库,并将上述存储库添加为远程存储库:
cd /tmp
git clone --depth 1 [email protected]:muennich/urxvt-perls.git
cd urxvt-perls
git remote add target /tmp/target
最后,我将此仓库推送到远程服务器:
git push target master
但是然后我得到:
! [remote rejected] master -> master (shallow update not allowed)
error: failed to push some refs to '/tmp/target'
我在这里想念什么?
最佳答案
我在回答我自己的问题。
我尝试了另一种方法,并添加urxvt-perls
作为target
的远程对象,然后从那里获取。由于相同的原因,此操作失败,但使我更接近解决方案。来自git-fetch
人:
--update-shallow
By default when fetching from a shallow repository, git fetch
refuses refs that require updating .git/shallow. This option
updates .git/shallow and accept such refs.
现在,使用此选项可以进行浅层提取。因此,前面的问题变为:是否可以在推送时指定
--update-shallow
的行为?好吧,有一个选择:receive.shallowupdate
If set to true, .git/shallow can be updated when new refs require
new shallow roots. Otherwise those refs are rejected.
不过,我仍在尝试在github之类中设置它。
关于git - 不允许进行浅更新(git> 1.9),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33085672/