版本1.9 / 2中的git clone不再为我的仓库中的所有分支创建远程跟踪分支

时间:2014-07-23 03:29:06

标签: git capistrano

根据git文档,git clone creates remote-tracking branches for each branch in the cloned repository。但是,今天我在Ubuntu 14.04上设置了一个新的机器映像,并在此过程中将我的git从1.7.9.5升级到2.0.2。当我尝试使用capistrano将代码从不同的(非主)分支部署到框中时,它失败了,我找到了问题的根本原因git clone --depth 1(上限产生的命令和用途)没有为每个分支创建远程跟踪分支。结果,尝试从所述非主分支引用签入失败。我做了一个

  git branch -r

只看到

  origin/HEAD -> origin/master
  origin/master

显示,不是我所有的其他分支。

我发现有一些behavior changes introduced in git 1.9,还有referenced on SO here

有人可以解释为什么这个改变会导致我现在看到的行为,以及我现在需要执行什么命令才能让它像git 1.7一样工作?

谢谢!

1 个答案:

答案 0 :(得分:0)

来自git clone的文档:

  

<强> - [无糖]单分支

     

仅克隆导致单个分支的提示的历史记录,由...指定   --branch选项或主分支远程的HEAD指向。

     

使用--depth选项创建浅层克隆时,这是默认设置,除非提供--no-single-branch来获取所有分支提示附近的历史记录。

对capistrano不太了解,你能用--no-single-branch选项克隆它还是省略浅克隆--depth选项?或者只使用--branch选项克隆所需的分支?

正如您之前在1.7.9.5所做的那样,您没有看到此行为,因为它是1.7.10 that introduced the single-branch option to git clone