6

这是我所有分支的列表:

$ git branch -a
* temp
  remotes/heroku/master
  remotes/origin/dev
  remotes/origin/master

当我输入 git checkout remotes/origin/master切换到我的原始master分支时,Git 切换到分离的 HEAD 状态。为什么?

4

1 回答 1

13

这是正确的行为,因为您已签出远程分支。

如果您想查看 master 并对其进行处理,您现在应该这样做:

# checkout remote branch as local branch
# this will look up the branch name locally and if it does not find it it
#will checkout your remote branch with this name.
git checkout master

当您签出远程分支时,您只是将您的HEAD指向该分支的最新提交。如果您想对其进行处理,则必须将其作为本地分支签出,而无需remote/<branch>. 这将自动签出并使用给定名称创建本地分支。

如果您想了解有关HEAD的更多信息,请在此处阅读所有相关信息。


什么是分离的 HEAD?

分离的 HEAD 意味着您的 HEAD 指向的提交不是提交链中的后期。

在此示例中,提交 #4 是最新的,而 HEAD 指向提交 #2。

在此处输入图像描述

于 2016-02-09T20:53:13.583 回答