这是我所有分支的列表:
$ git branch -a
* temp
remotes/heroku/master
remotes/origin/dev
remotes/origin/master
当我输入 git checkout remotes/origin/master
切换到我的原始master
分支时,Git 切换到分离的 HEAD 状态。为什么?
这是我所有分支的列表:
$ git branch -a
* temp
remotes/heroku/master
remotes/origin/dev
remotes/origin/master
当我输入 git checkout remotes/origin/master
切换到我的原始master
分支时,Git 切换到分离的 HEAD 状态。为什么?
这是正确的行为,因为您已签出远程分支。
如果您想查看 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 指向的提交不是提交链中的后期。
在此示例中,提交 #4 是最新的,而 HEAD 指向提交 #2。