有很多答案说明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/

10-13 05:17