1

在 git 中,我有 2 个提交和一个分支合并,它们已被重新设置为如下所示

7
6_
  5
  4
3_|
2
1

合并是用 no-ff 完成的。

我的客户不想推出提交 1 和 2,所以我试图重新设置它看起来像这样

1
2
7
6_
  5
  4
3_|

这是可取的,因为这样我就可以从提交 7 分支出来,这就是我的生产版本。

变基 -i XXXX

使整个事情变得平坦并且有大量的冲突。由于我试图准备生产部署,我不想发生冲突,因为代码将不得不返回测试。

当我这样做时

变基 -i -p XXXXXX

它正确地移动了提交 1 和 2,但它删除了合并和与之相关的 4 周工作。我到底是怎么做到的?

4

1 回答 1

3

从两个提交创建一个补丁,并以反向模式将它们应用到 head。

临:

  1. 简单的解决方案
  2. 非常安全,具体取决于更改的大小

缺点:

  1. 将提交保留在提交历史记录中
  2. 根据两次提交中对代码的更改量(即更改发生在 rev. 3-7 中的代码),反向应用将不起作用

另一个技巧是在没有最后 7 次修订的情况下结帐。然后为修订版 3-7 创建补丁并应用这些补丁。应该给你相同的结果和干净的提交历史。

但在这两种情况下,我都很谨慎,因为你在变基期间遇到了很多冲突。

于 2012-06-19T12:18:07.113 回答