git rebase --interactive --preserve-merges 与合并冲突

Cod*_*ice 5 git rebase git-merge

我目前正在从 git 存储库中清除密码和其他敏感数据。我想尽可能保留历史,包括合并。所以我正在做git rebase --interactive --preserve-merges <commit>。然后我编辑指令来编辑我关心的特定提交。在变基过程中,我惊讶地发现与我的密码编辑无关的合并冲突。我相信这些是历史上一些现有合并发生的冲突,并在合并时得到解决。为什么 git 不能重播解决这些冲突的提交?

vas*_*vas 5

--preserve-merges不兼容--interactive.

(本回答所有引用均来自git help rebase。)

这在内部使用了 --interactive 机制,但将其与--interactive选项显式组合通常不是一个好主意,除非您知道自己在做什么(请参阅下面的错误)。

此外,以下选项对是不兼容的:

  • --preserve-merges--interactive

改用--rebase-merges

--rebase-merges在 Git 2.18 中引入,并在 Git 2.22 中--preserve-merges正式弃用。

--rebase-merges模式在本质上与已弃用的模式类似--preserve-merges,但适用于交互式变基,其中提交可以随意重新排序、插入和删除。

它仍然可能无法解决您的问题:

这些合并提交中任何已解决的合并冲突或手动修改都必须手动解决/重新应用。

即使它不能解决你的问题,我认为它肯定回答了你的问题。另外,无论如何您都应该使用这个选项,因为它--preserve-merges现在已被弃用。

还有更多git help rebase评论--rebase-merges。我建议阅读它们。