以前我的代码被一个严重破坏的可怕错误感染了。经过长时间的斗争,我决定只$git checkout
提交一个预错误提交。
现在$git branch
返回一个带有分支“(无分支)”标记的列表。我如何合并(这是正确的吗?)这个到master
分支中?
额外的问题:甚至“(无分支)”是什么意思?真的可以没有分店吗?
以前我的代码被一个严重破坏的可怕错误感染了。经过长时间的斗争,我决定只$git checkout
提交一个预错误提交。
现在$git branch
返回一个带有分支“(无分支)”标记的列表。我如何合并(这是正确的吗?)这个到master
分支中?
额外的问题:甚至“(无分支)”是什么意思?真的可以没有分店吗?
是的,它真的可以是“没有分支”。你在一种叫做“分离头”的状态下运行。如果您不小心,您将丢失所做的更改。在分离的头部状态下,git 不会更新任何引用。因此,如果您签出其他分支,您可能会忘记您所在的位置......以及随之而来的更改。
首先,为您的分支命名:
$ git checkout -b new-branch-name
接下来,如果你想让你的 master 分支看起来像新的分支,你有几个选择……有些可以丢失 master 的历史,有些会保留它。我假设你想要后者。
最简单的做法是在新分支上运行:
$ git merge -s ours master
这将引入 master,但由于-s ours
选项(这将选择ours
合并策略)而不会应用它的任何更改。然后结帐大师,并运行:
$ git checkout master
$ git merge new-branch-name
此时,master 应该看起来像 new-branch-name。
即使我真的不知道发生了什么,我也设法解决了这个问题。我这样做$git checkout master
是为了在master
树枝上。
然后我创建了一个分支,$git branch name_of_my_new_branch 12the39id9843of8old38branch
噗,bug 无处可寻。为什么 git 以这种方式工作仍然是一个谜,但如果有人第一次遇到神秘的(no branch)
分支,这至少可以帮助他们master
安全地到达温馨的分支。