&引用;git checkout<;提交id>&引用;正在将分支机构更改为";“无分支机构”;
我在git的一个分支机构工作。当我这样做的时候&引用;git checkout<;提交id>&引用;正在将分支机构更改为";“无分支机构”;,git,Git,我在git的一个分支机构工作。当我这样做的时候 git checkout <commit id> git签出 (commit id从git log)获得),它将被提交到该特定更改,但分支更改为 为什么会这样?你如何解决这个问题 提交是否在另一个分支中Git checkout将切换到另一个分支。如果希望代码出现在第一个分支中,则需要将更改合并到第一个分支中 如果您是分支master并且执行git签出 我相当肯定这会导致git以一种状态加载该提交,从而将您从当前分支中删除 如果您想进
git checkout <commit id>
git签出
(commit id从git log
)获得),它将被提交到该特定更改,但分支更改为
为什么会这样?你如何解决这个问题 提交是否在另一个分支中<如果提交发生在另一个分支中,code>Git checkout将切换到另一个分支。如果希望代码出现在第一个分支中,则需要将更改合并到第一个分支中 如果您是分支
master
并且执行git签出
我相当肯定这会导致git以一种状态加载该提交,从而将您从当前分支中删除
如果您想进行更改,您可以然后执行
git checkout-b
,根据提交和您所做的任何更改创建一个新分支。如果您直接执行checkout
提交sha,它会将您置于“分离头”状态,这基本上只是意味着工作副本签出的当前sha没有指向它的分支
如果您还没有进行任何提交,您可以在签出提交sha之前,通过简单地签出您所在的分支来离开分离头状态:
git checkout <branch>
您可以通过签出历史记录中的一个提交来了解更多信息。您正在将git移动到所谓的“分离状态”,这似乎不是您想要的。使用以下单个命令在历史记录中的一个提交上创建新分支:
git checkout -b <new_branch_name> <SHA1>
git签出-b
其他答案解释了“头部分离”的含义。我试着回答我为什么要这么做。在某些情况下,我更喜欢签出提交而不是签出临时分支
git checkout-f
切换回我的分支,使用-f
放弃任何合并冲突。我再次发现它比签出tmp分支更方便当我想签出代码时,这对我来说最有效,因为提交ID
git获取来源
git签出-b新分支获取头
我不明白你的问题,你能粘贴命令和输出的序列吗?如果你签出一个提交,你就不再在任何分支上(因为你告诉Git你想在提交上)和的可能重复。
git fetch origin <commit_id_SHA1>
git checkout -b new_branch FETCH_HEAD