为什么有一个`遥控/原点/头 - >我的`git branch -l -a`输出中的origin / master`条目?

时间:2012-09-27 03:48:24

标签: git branch

我不理解输出到git branch -l -a的第二行:remotes/origin/HEAD -> origin/master

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

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

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

2 个答案:

答案 0 :(得分:36)

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

另见:

注意:您需要use git branch --list (or git branch), not git branch -l

答案 1 :(得分:23)

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

origin/HEAD引用是可选的。它仅作为语法快捷方式:如果它存在且指向origin/master,您可以使用特定的origin,否则您将指定origin/master

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

  

组头

     

设置或删除默认分支(即目标   symbolic-ref refs / remotes // HEAD)用于命名的遥控器。有一个   不需要远程的默认分支,但允许使用名称   要指定的远程代替特定分支。例如,   如果origin的默认分支设置为master,则原点可能是   指定通常指定origin / master的地方。