如何保留最新的提交以避免合并冲突?

How can I keep the latest commits to avoid merge conflicts?

我正在做一个变基,我想始终保留在最新提交中所做的更改,以避免必须手动解决冲突。

很遗憾,您很可能做不到。

当你有多个提交在 rebase 期间发生冲突时,每个提交都会被一个接一个地重放。从每次提交冲突的角度来看,最后一次提交的更改还不存在,因此不可能自动选择该文件的最终版本。

那你能做什么?有一些选项可能适合您:

  1. 如果您愿意将您的提交压缩为更少的提交,那么您需要解决的总冲突就会减少。
  2. 如果你不想压扁你的提交,并且 rebase 造成的痛苦首先大于 rebase 的好处,那么你可以改为合并,然后你将只有一组需要处理的冲突。

此外,作为 ,您可以使用 rerere 在变基期间协助解决每次提交的类似冲突。