我做了git checkout $ OLD_BRANCH。如何掌握它?

时间:2012-12-03 11:01:17

标签: git

以前我的代码被一个可怕的恶意攻击感染了。经过长时间的斗争后,我决定只对$git checkout进行bug修改。

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

奖金问题:甚至“(没有分支)”是什么意思?它真的不是分支吗?

2 个答案:

答案 0 :(得分:3)

是的,它真的可以是“没有分支”。您正在以"detached head"状态运行。如果你不小心,你将失去你的改变。在处于分离头状态时,git不会更新任何引用。因此,如果您结帐其他某个分支机构,您可能会忘记自己所处的位置......以及随之而来的变化。

首先,给你的分支一个名字:

$ git checkout -b new-branch-name

接下来,如果你想让你的主分支看起来像新分支,你有一些选择......一些可能会失去master的历史,一些会保留它。我假设你想要后者。

最简单的方法是在新分支上运行:

$ git merge -s ours master

这将引入主人,但由于-s ours选项(这会选择ours merge strategy),因此不会应用任何更改。然后结帐主人,然后运行:

$ git checkout master
$ git merge new-branch-name

此时,master应该看起来像new-branch-name。

答案 1 :(得分:0)

即使我真的不知道发生了什么,我设法解决了这个问题。我做了$git checkout master才能进入master分支。

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