2

这是我们当前的功能分支工作流程 ->

  • 从 master 创建一个新的功能分支。
  • 将工作提交到功能分支。
  • 将 master 合并到功能分支中,以使其保持最新。
  • 如果有冲突解决它们。这会在功能分支中创建一个“将 master 合并到 Feature_Branch”提交。
  • 功能分支完成后,将功能分支合并回 master。

问题:

如果我们将 feature 分支合并 --squash 到 master 中,我们没有问题。如果我们进行常规合并然后变基,我们必须再次解决所有冲突。在具有 100 次提交的功能分支上,这是一个很大的痛苦。

有没有办法将功能分支合并回 master 和 rebase 而不会发生冲突?

4

1 回答 1

4

我认为您正在与这件事作斗争:Rebaseing a Git merge commit

尝试启用rerere并使用git rebasewith-p选项。

如果我理解得很好,-p请 Git 在 rebase 期间偶然发现之前存储的冲突解决方案时尝试重用它们,并且rerere是一个“插件”,它使 git 能够从字面上“重用记录的解决方案”。

前段时间这里有一篇文章但现在似乎没有了。也许你会在互联网档案中找到它。

所以,我刚刚查了另一个,它似乎很好地解释了事情:

Rerere 你的船...

IE:

打开后,rerere您可以偶尔合并,解决冲突,然后退出合并。如果您连续执行此操作,那么最终合并应该很容易,因为rerere可以自动为您完成所有操作。

如果您想保持分支变基,则可以使用相同的策略,这样您就不必每次都处理相同的变基冲突。或者,如果您想采用一个合并并修复了一堆冲突的分支,然后决定改用它- 您可能不必再次执行所有相同的冲突。

看重点。似乎正是你在做什么。

但是,在你跳上“天哪,为什么默认情况下不启用它?!” 小心点,看看这个:https ://stackoverflow.com/a/5521483/717732并一起rerere学习rerere forget. 以防万一!

于 2013-11-13T16:14:58.343 回答