在一个git仓库中,我有一个分支,我经常将主分支合并到这个分支中:
在哪里,
我想压缩连续的提交
直观地说,这应该是可能的,而不必再次解决
然而,如果我使用
有没有办法告诉Git重复使用
A -- B -- C -- D -- E -- F -- G (master)
\ \ \
U -- V -- M1-- X -- Y -- M2 -- Z (feature)
在哪里,
M1
和M2
提交将master
合并到feature
。我想压缩连续的提交
U
和V
,并保留其余的结构。直观地说,这应该是可能的,而不必再次解决
M1
和M2
中的合并冲突,因为通过将U
和V
压缩在一起,我不会改变被M1
合并的工作树的状态,也不会改变合并基础。然而,如果我使用
git rebase -i A --rebase-merges
(选择pick U
,然后是fixup V
)来做这个,我需要再次解决M1
的合并冲突。有没有办法告诉Git重复使用
M1
和后续的提交?
rerere
可以帮助重复相同的合并冲突解决,但可能对你现在没有帮助,因为你没有启用它。你只能忍受一下,再次解决冲突。 - undefinedgit rebase --rebase-merges
可能会在某个时候具备这种能力。但目前实现的方式是将提交应用到代码中,并不关心“之前”的解决方案。 - undefinedV
的父节点从U
改为A
,然后重新计算传递子节点。对于这种用例来说,git rebase
并不是很适合(而且速度也比较慢)。 - undefined