我的理解是,克隆存储库的默认分支是被克隆的存储库中 HEAD 指向的任何内容。
我现在有一个案例,这不是真的。我的理解显然是有缺陷的,那么在克隆(裸)repo 时,是什么决定了默认的 checkout 分支?
该仓库的最后一次提交是在裸仓库的 HEAD 中引用的分支与我作为克隆中的结帐分支得到的分支之间的合并。
运行git remote show origin
返回:
Fetch URL: ...
Push URL: ...
HEAD branch (remote HEAD is ambiguous, may be one of the following):
<bad-branch>
live
Remote branches:
...
裸仓库使用 Git 版本 1.8.2.1,客户端使用 1.7.12.4,传输是 SSH。
也许答案其实就是这里的这个。这个答案证实了这一点。如果有一个符号引用都指向与 HEAD 相同的修订版,客户端将猜测使用哪个分支。