如何重新设置基数和保留合并以及壁球/修复程序

时间:2019-06-16 21:16:15

标签: git rebase

在清理长期运行的功能分支的任务时,我发现历史记录中有很多提交需要压缩/修复或重新编写。我确实要保留合并,因为它们可能具有无法解决的复杂冲突解决方案。

想象一下以下提交:

master: P0 - P1 - P2 - P3 --------------
         \    \                          \
feature:  A - M1 - B - C1 - C2 - C3 - D - M2 - E

M是来自同一分支(主)2的合并。

我想将C2C3修正为C1(并说出改写C1)。

当我这样做时: git rebase -i -r master我看到了所有提交和合并,并根据需要用fr标记了它们。

执行此基准更改后,当我到达合并提交M2时,git会抱怨冲突。我认为是因为由于修订导致提交被重写,所以无法应用合并。

有没有办法使git进行这样的合并而不会发生冲突?鉴于我没有更改任何内容,在这种情况下,ourstheirs总是正确的,在运行此基准库的过程中我将如何做。

1 个答案:

答案 0 :(得分:-1)

如果总的来说,您想要做的就是将所有更改都压缩到一个更改中,并在您从其开始的分支之上重新建立基础。...我这样做不会像这样麻烦所有重新构建基础:

git checkout my-branch
git merge the-target-branch
# finish that merge, doesn't matter the comment, it will go away
# when the merge is finished
git reset --soft the-target-branch
git commit -m "my squashed feature"

您在没有察觉的情况下重新定位/压扁