Git 将分离的头重新固定在主分支上

Git 将分离的头重新固定在主分支上,git,merge,rebase,gerrit,Git,Merge,Rebase,Gerrit,我在工作中使用gerrit,它需要使用rebase而不是合并提交。今天,我使用它的散列值签出了上一次提交,当我运行git branch命令时,我被告知我处于“no branch”状态。我猜这是一个分离的头?在任何情况下,我都会对我的主分支进行重新设置,并打印控制台 Using index info to reconstruct a base tree... Falling back to patching base and 3-way merge... 这种情况下的“三方合并”从何而来?再基化

我在工作中使用gerrit,它需要使用rebase而不是合并提交。今天,我使用它的散列值签出了上一次提交,当我运行git branch命令时,我被告知我处于“no branch”状态。我猜这是一个分离的头?在任何情况下,我都会对我的主分支进行重新设置,并打印控制台

Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
这种情况下的“三方合并”从何而来?再基化后头部是否仍然分离(考虑到“基本树”的说法)?多谢各位

是“否分支”表示分离的头部

基本修订源于实际操作

git merge-base <yourrevision> master
git合并基主机
它将查看最后一个公共祖先(或合并点,即使存在手动冲突,也将其视为公共祖先)以建立基础版本

在一个重基后,你通常总是在一个新的分离头上,IIRC。现在有许多方法可以调用rebase(包括--to--root),它们的行为可能略有不同。因此,如果您想发布使用的rebase命令,我可能会验证我的想法,并可能添加一些注释。

冲突不会自行消失,但在本例中,我们修复了冲突并继续,原始修补程序“添加了另一条消息”将自行更改:


关键是在修复冲突后继续重新连接。

重新连接头确实会分离,但完成后会重新连接。在我的案例中,由于某种原因,它通常会在完成后解除连接。。。我有时会收到一些被拒绝许可的东西,所以必须使用--继续。我通常会说rebase-I HEAD~10,用于压缩最后的提交。你知道为什么它不会重新连接自己吗?通常是因为合并冲突(可能是伪冲突)。您需要
合并工具
添加
,然后
重新基线--继续
(请参阅)
$ vi main.c
$ git add main.c
$ git rebase --continue