gpt4 book ai didi

git - 什么决定了 "git clone"之后的默认分支?

转载 作者:IT王子 更新时间:2023-10-29 00:54:40 27 4
gpt4 key购买 nike

我的理解是克隆存储库的默认分支是被克隆的存储库中 HEAD 指向的任何内容。

我现在有一个案例不是这样的。我的理解显然有缺陷,那么在克隆(裸)存储库时,什么决定了默认的 checkout 分支?

该 repo 的最后一次提交是将裸 repo 的 HEAD 中引用的分支 merge 到我作为克隆中的 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:
...

裸仓库使用 Git 版本 1.8.2.1,客户端使用 1.7.12.4,传输是 SSH。

也许答案实际上是this one here . This answer确认它。如果选择的符号引用都指向与 HEAD 相同的修订版,则客户端将猜测使用哪个分支。

最佳答案

Git 1.8.5 开头,服务器将在“symref”功能中发送 HEAD 指向的实际分支名称。如果您的客户端和服务器都比 Git 1.8.5 更新,它将更新 HEAD 正确

在此之前,客户端会通过将 HEAD(最终)指向的对象 ID 与所有分支的所有对象 ID 进行比较来猜测 HEAD 可能指向了什么。它更喜欢名为 refs/heads/master 的分支:如果 HEADmaster 都指向相同的对象 ID,则克隆将设置默认值在新存储库中分支到 master

否则,具有匹配 OID 的第一个分支(当分支按字母数字排序时)将是默认分支。如果没有分支具有匹配的 OID,则 HEAD 将直接设置为对象 ID(即分离的 HEAD)。

关于git - 什么决定了 "git clone"之后的默认分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726037/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com