我正在从一个git存储库中清除密码和其他敏感数据。 我希望尽可能保留历史记录,包括合并记录。 因此,我使用git rebase --interactive --preserve-merges <commit>
进行操作。 然后,我编辑指令以编辑我关心的特定提交。 在重新应用提交过程中,我惊讶地发现与我编辑密码无关的合并冲突。 我相信这些是在历史记录中某些现有合并时发生的冲突,并且在合并时已经解决。 为什么git不能只重播解决这些冲突的提交?
我正在从一个git存储库中清除密码和其他敏感数据。 我希望尽可能保留历史记录,包括合并记录。 因此,我使用git rebase --interactive --preserve-merges <commit>
进行操作。 然后,我编辑指令以编辑我关心的特定提交。 在重新应用提交过程中,我惊讶地发现与我编辑密码无关的合并冲突。 我相信这些是在历史记录中某些现有合并时发生的冲突,并且在合并时已经解决。 为什么git不能只重播解决这些冲突的提交?
--preserve-merges
不能与--interactive
一起使用。
(以下所有引用来自git help rebase
)
这在内部使用
--interactive
工具,但是显式地将其与--interactive
选项结合使用通常不是一个好主意,除非您知道自己在做什么(请参见下面的BUGS)。
以及
此外,以下选项对是不兼容的:
--preserve-merges
和--interactive
--rebase-merges
--rebase-merges
是在Git 2.18中引入的,而--preserve-merges
则已在Git 2.22中正式弃用。
--rebase-merges
模式在精神上类似于废弃的--preserve-merges
,但适用于交互式rebase,其中提交可以随意重新排序、插入和删除。
它可能仍无法解决您的问题:
这些合并提交中的任何已解决的合并冲突或手动修改都必须手动解决/重新应用。
即使它不能解决您的问题,我认为这绝对回答了您的问题。此外,您应该使用此选项,因为--preserve-merges
现在已弃用。
--rebase-merges
还有更多有关的git help rebase
评论。我建议阅读它们。
--rebase-merges
? - Code-Apprentice