变基合并提交

2023-11-28

假设我的 Git 存储库最初有两个分支:Foo 和 Bar。



... ─ Foo

... ─ Bar
  

我创建了第三个分支 FooBar,在其中提交了其他两个分支的合并。



... ─ Foo ──┐
            FooBar
... ─ Bar ──┘
  

FooBar 现在比 Foo 和 Bar 都领先一项。接下来,我做了更多工作,仅在 Foo 上提交了几次。



... ── A ───┬── B ── C ── D ── Foo
            FooBar
... ─ Bar ──┘
  

问题是:由于分支 FooBar 的第一个父级不再是 Foo,我是否可以重新调整分支 FooBar 中的合并提交,以再次将 Foo 和 Bar 作为其两个父级?换句话说,我可以将 Foo 中的开发与未更改的 Bar 一起合并到之前合并的 FooBar 中吗?



... ── A ── B ── C ── D ── Foo ──┐
                                 FooBar
... ─ Bar ───────────────────────┘
  

我意识到这是一个相当古老的话题,但由于我在面临类似的情况时发现了这个问题,所以我也可以告诉我最终使用了什么。

git checkout FooBar
git rebase -p --onto Foo A

我尝试使用原始问题中的名称。特别注意的是A表示在 ascii art 中标记为 A 的提交。您可能会使用提交的哈希值或任何其他方式来指向分支所在的提交Foo and FooBar原本是分开的。

The -p标志也被称为--preserve-merges它的作用几乎就是它所说的。

请注意,分支Bar在这里不起作用,因此提交行可能是命名分支,也可能不是 - 这没有区别。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

变基合并提交 的相关文章

随机推荐