为什么我的`git branch -l -a`输出里有`remotes / origin / HEAD – > origin / master`项?

我不明白输出到git branch -l -a的第二行git branch -l -aremotes/origin/HEAD -> origin/master

 git branch -l -a * master remotes/origin/HEAD -> origin/master remotes/origin/master 

这是另一种手术的剩余吗? 我应该清理吗? 我该怎么做?

通常我会在cli上使用git,但是在本地存储库上,我使用了TortoiseGit来为朋友find一个简单的git工作stream程。

不,不需要清理:它是远程回购引用的象征分支。
当你克隆你的repo时,你将默认在remotes/origin/HEAD引用的分支上。

也可以看看:

  • “ Git:正确的方式来改变裸仓库中的活动分支?
  • “ 如何改变一个Git远程HEAD指向除”主“之外的东西 ”
  • origin/HEAD如何设置? ”

您可以使用git remote set-head origin -d来删除origin/HEAD symbolic ref,或者使用git remote set-head origin -a来查询远程设备,并自动将origin/HEAD指针设置为remote的当前分支。

origin/HEAD参考是可选的。 它只作为一个语法快捷方式:如果它存在并指向origin/master点,则可以使用特定的origin ,否则将指定origin/master

git remote(1)手册页描述了这一点:

组头

设置或删除指定远程的默认分支(即symbolic-ref refs / remotes // HEAD的目标)。 有一个远程默认分支不是必需的,但允许指定远程的名称,而不是一个特定的分支。 例如,如果原始缺省分支设置为主,则可以在通常指定原点/主标识的任何位置指定原点。