考虑以下问题:
我想做什么:
将所有从root用户提交到 clean 状态的任意提交压缩为一个大的初始提交'。
当我这样做时:
git rebase -i --root
将第一次提交压缩在一起:
pick Initial commit \
fixup dirty1 |
fixup dirty2 | Squash these to one, to remove credentials.
fixup dirty3 |
fixup clean1 /
pick clean2
pick clean3
...
...
我必须重新设置所有内容并在此之后再次解决所有合并冲突。
如何在不必解析整个历史记录(包括N + 1提交后的合并冲突)的情况下压缩前N个提交。
答案 0 :(得分:0)
您可以使用git-rerere
重复使用相同的冲突解决方案。
唯一的缺点是,在启用重新启动之后,您必须再次解决它们,然后才能自动重用这些解决方案。
答案 1 :(得分:0)
您可以使用 git rebase -Xtheirs -i --root
。
将第一次提交保留为选择(正如您所做的那样)并将第二行到第 N 行的第一个单词更改为 squash
。
-Xtheirs
将为您管理合并问题,我想这就是您在这里寻找的东西。