0

以前我的代码被一个严重破坏的可怕错误感染了。经过长时间的斗争,我决定只$git checkout提交一个预错误提交。

现在$git branch返回一个带有分支“(无分支)”标记的列表。我如何合并(这是正确的吗?)这个到master分支中?

额外的问题:甚至“(无分支)”是什么意思?真的可以没有分店吗?

4

2 回答 2

3

是的,它真的可以是“没有分支”。你在一种叫做“分离头”的状态下运行。如果您不小心,您将丢失所做的更改。在分离的头部状态下,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。

于 2012-12-03T11:39:50.307 回答
0

即使我真的不知道发生了什么,我也设法解决了这个问题。我这样做$git checkout master是为了在master树枝上。

然后我创建了一个分支,$git branch name_of_my_new_branch 12the39id9843of8old38branch噗,bug 无处可寻。为什么 git 以这种方式工作仍然是一个谜,但如果有人第一次遇到神秘的(no branch)分支,这至少可以帮助他们master安全地到达温馨的分支。

于 2012-12-03T11:29:04.147 回答