我目前正在清除git存储库中的密码和其他敏感数据。我仍然希望尽可能多地保存历史,包括合并。所以我在做git rebase --perserve-merges -i <commit>。然后,我编辑指令来编辑我关心的特定提交。在重基过程中,我惊讶地看到与密码编辑无关的合并冲突。我相信,这些冲突发生在历史上一些现有的合并中,并在合并时得到了解决。为什么git不能只重放解决这些冲突的提交?
发布于 2020-04-17 19:33:18
--preserve-merges 与 --interactive**.**不兼容
(这个答案中的所有引号都来自git help rebase。)
这在内部使用--交互机制,但是将它与
--interactive选项显式结合通常不是一个好主意,除非您知道自己在做什么(请参阅下面的but )。
和
此外,下列两对选项不兼容:
--preserve-merges和--interactive使用--rebase-merges代替
--rebase-merges是在Git 2.18中引入,--preserve-merges是在Git 2.22中被否决。
--rebase-merges模式在精神上类似于不推荐的--preserve-merges,但可以使用交互式重基,其中提交可以随意重新排序、插入和删除。
它仍可能解决不了你的问题:
在这些合并提交中解决的任何合并冲突或手动修改都必须手动解决/重新应用。
即使它不能解决你的问题,我认为它肯定地回答了你的问题。另外,您应该使用此选项,因为--preserve-merges现在已不再受欢迎。
在git help rebase上有更多关于--rebase-merges的评论。我建议你读一读。
https://stackoverflow.com/questions/61278909
复制相似问题