【发布时间】:2021-02-25 17:54:52
【问题描述】:
我的理解是,克隆存储库的默认分支是被克隆的存储库中 HEAD 指向的任何分支。
我现在遇到了一个不正确的案例。我的理解显然是有缺陷的,那么在克隆(裸)repo 时,是什么决定了默认的 checkout 分支?
该 repo 上的最后一次提交是在裸 repo 的 HEAD 中引用的分支与我作为克隆中的 checkout 分支获得的分支之间的合并。
运行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:
...
Bare repo 使用 Git 版本 1.8.2.1,客户端使用 1.7.12.4,传输是 SSH。
也许答案实际上是this one here。 This answer 确认。如果选择的符号引用都指向与 HEAD 相同的修订版,客户端将猜测要使用哪个分支。
【问题讨论】:
-
你能设置一个复制器吗?涉及哪些版本的 git(在 clone-ee 和 clone-er 上)?使用什么交通工具?
-
是的,这也发生在我身上。似乎客户端正在选择一个分支,该分支指向远程的
HEAD指向的同一提交。这发生在我删除master分支并将另一个新分支设置为默认分支之后。目前还有一些其他分支也指向这个新默认分支的最新提交。