为什么在我的`git branch -l -a`输出中有一个`remotes/origin/HEAD - > origin/master`条目?

mis*_*cko 54 git branch

我不明白输出中的第二行git branch -l -a:remotes/origin/HEAD -> origin/master.

git branch -l -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

这是另一种手术的遗留物吗?我应该把它清理干净吗?那我该怎么办?

通常我在cli上使用git,但是在我尝试的本地存储库中TortoiseGit为朋友找到一个简单的git工作流程.

Von*_*onC 40

不,无需清理:它是您的远程仓库引用的符号分支.
当您克隆您的仓库时,默认情况下您将在引用的分支上remotes/origin/HEAD.

也可以看看:

注意:您需要使用git branch --list(或git branch),而不是git branch -l.

  • 如果你想删除它:`git remote set-head origin -d`,请访问http://stackoverflow.com/a/6838756. (4认同)
  • Thx简洁的答案和链接.我想我很困惑,因为我将这个测试回购与另一个没有遥控器/原点/ HEAD参考的回购比较.另一个回购是我推送给github的原始回购,因此从未被克隆过.这个(没有被克隆)是不包含HEAD参考的原因是正确的吗? (2认同)

Col*_*ett 24

您可以使用git remote set-head origin -d删除origin/HEAD符号引用,或git remote set-head origin -a查询远程并自动将origin/HEAD指针设置为远程的当前分支.

origin/HEAD基准是可选的.它只作为语法快捷方式:如果它存在并指向origin/master,您可以使用特定的origin地方,否则您将指定origin/master.

远程Git(1)手册页描述了这一点:

组头

设置或删除指定远程的默认分支(即symbolic-ref refs/remotes // HEAD的目标).不需要具有远程的默认分支,但允许指定远程的名称来代替特定分支.例如,如果origin的默认分支设置为master,则可以在通常指定origin/master的任何位置指定origin.


归档时间:

查看次数:

26763 次

最近记录:

7 年,6 月 前