我目前正在从git存储库中清除密码和其他敏感数据。我仍然希望尽可能保留历史,包括合并。所以我在做git rebase --perserve-merges -i <commit>
。然后,我编辑说明以编辑我关心的特定提交。在重新设置期间,我很惊讶地看到与我的密码编辑无关的合并冲突。我相信这些是历史上某些现有合并所发生的冲突,在合并时已解决。为什么git无法仅重播解决了这些冲突的提交?
--preserve-merges
与--interactive
不兼容。
(此答案中的所有引号均来自git help rebase
。]
这在内部使用--interactive机制,但是除非您知道自己在做什么,否则将它与
--interactive
选项明确地组合通常不是一个好主意(请参阅下面的BUGS)。
和
此外,以下选项对不兼容:
- [
--preserve-merges
和--interactive
--rebase-merges
--rebase-merges
模式在本质上与不推荐使用--preserve-merges
相似,但可与交互式基准库一起使用,在该基准库中,可以随意对提交进行重新排序,插入和删除。
它仍然可能无法解决您的问题:
这些合并提交中的任何已解决的合并冲突或手动修订都必须手动解决/重新应用。
即使它不能解决您的问题,我也认为它肯定会回答您的问题。另外,由于--preserve-merges
现在已弃用,因此您仍应使用此选项。
git help rebase
上还有更多--rebase-merges
条评论。我建议阅读它们。