针对主分支重新分离已分离的HEAD

时间:2011-06-02 21:53:48

标签: git merge rebase gerrit

我在我的工作中使用gerrit,它需要使用rebase而不是merge commit。今天我使用其哈希值检查了以前的提交,当我运行git branch命令时,我被告知我在“没有分支”。我认为这是一个独立的HEAD?在任何情况下,我都反对我的主分支,并打印控制台

Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...

这种情况下的'三向合并'来自哪里?在rebase之后HEAD是否仍然分离(考虑'基础树'声明)?谢谢。

2 个答案:

答案 0 :(得分:1)

是'否分支'表示分离的HEAD

基础修订来自于

git merge-base <yourrevision> master

它将查看最后一个共同的祖先(或合并点,即使存在手动冲突,也被认为是一个共同的祖先)来建立基本版本。

经过一次改变后,你通常总是在一个新的独立HEAD,IIRC。现在有很多方法可以调用rebase(包括--onto --root),它们的行为可能略有不同。因此,如果你想发布使用的rebase命令,我可以验证我的想法,也许可以添加一些注释。

答案 1 :(得分:0)

作为illustrated here,此错误消息通常是冲突的标志:

  

冲突本身并没有消失,但在这种情况下,我们会解决冲突并继续,并且原始补丁“添加另一条消息”将自行更改:

$ vi main.c
$ git add main.c
$ git rebase --continue

关键是在解决冲突后继续 rebase。