Git 切换到一个远程分支,使头部分离

Git 切换到一个远程分支,使头部分离,git,git-detached-head,Git,Git Detached Head,以下是我所有分支机构的列表: $ git branch -a * temp remotes/heroku/master remotes/origin/dev remotes/origin/master 当我键入git checkout remotes/origin/master切换到我的originmaster分支时,git切换到分离的头部状态。为什么?这是正确的行为,因为您已经签出了远程分支 如果您希望签出master并对其进行操作,请立即执行以下操作: # checkout r

以下是我所有分支机构的列表:

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

当我键入
git checkout remotes/origin/master
切换到我的origin
master
分支时,git切换到分离的头部状态。为什么?

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

如果您希望签出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
当您签出远程分支时,您只需指向来自该分支的最新提交。如果您希望使用它,您必须将其作为本地分支签出,而不使用
远程/
。这将自动签出并创建具有给定名称的本地分支

如果你想更多地了解这本书,请阅读全部内容


什么是分离的头? 分离的头部意味着您的头部指向的提交不是提交链中的最晚者

在这个示例中,commit#4是最新的,而头部指向commit#2


hi@codeWizard,感谢您的回复,事实上,我有三个分支,一个用于heroku,另一个(dev/master)用于我的repos服务器,我在尝试从分离的头部退出后,使用了一个临时分支(因为无法切换到三个分支中的任何一个),然后我将
临时分支
代码推送到所有分支,使用push
HEAD:master
HEAD:dev
可以正常工作,现在我需要处理origin/dev分支,当运行branch-a时(我有remotes/origin/dev,remotes/origin/master,remotes/heroku/master),但无法退出origin主分支,即使在执行git获取源代码之后,也可以尝试以下操作:
git签出开发人员;吉特分行-D硕士;git checkout master
谢谢,下面是结果,
切换到分支“dev”您的分支使用“origin/dev”更新。错误:找不到分支“主”。错误:pathspec“master”与git已知的任何文件都不匹配。
git branch-a
give
*dev temp remotes/heroku/master remotes/origin/dev remotes/origin/master
会发生这种情况,因为master名称(heroku的branch master和origin的branch master)?这个问题在网站上被问了无数次,也回答了无数次。我知道easy rep很难抗拒,但请在发布答案之前尝试寻找重复项。