根据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一样工作?
谢谢!
答案 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