git rebase --preserve-merger与合并冲突

时间:2020-04-17 19:06:48

标签: git git-merge rebase

我目前正在从git存储库中清除密码和其他敏感数据。我仍然希望尽可能保留历史,包括合并。所以我正在做git rebase --perserve-merges -i <commit>。然后,我编辑说明以编辑我关心的特定提交。在重新设置期间,我很惊讶地看到与密码编辑无关的合并冲突。我认为这些是历史上某些现有合并所发生的冲突,在合并时已解决。为什么git无法重播解决了这些冲突的提交?

1 个答案:

答案 0 :(得分:1)

--preserve-merges--interactive不兼容。

(此答案中的所有引号均来自git help rebase。)

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

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

  • --preserve-merges--interactive

改为使用--rebase-merges

--rebase-mergesintroduced in Git 2.18,而--preserve-merges为正式deprecated in Git 2.22

--rebase-merges模式在本质上与已弃用的--preserve-merges类似,但可与交互式rebase一起使用,在该交互式rebase中,可以随意重新排列,插入和删除提交。

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

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

即使它不能解决您的问题,我也认为它一定可以回答您的问题。另外,由于--preserve-merges已被弃用,因此您仍应使用此选项。

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