Git与提交覆盖合并

时间:2020-05-07 20:28:20

标签: git

我从母公司创建了分支A。在该分支上,我执行了rebase --i并重命名了一些从一开始就存在的提交。现在,我想将分支A合并回主服务器,用在分支A上设置的消息覆盖主服务器的提交。但是,如果我调用merge,则分支A的提交将放在{{1 }}。有没有办法强制将master中的旧提交替换为分支A上的更新版本?

1 个答案:

答案 0 :(得分:0)

免责声明:请勿在不了解后果的情况下更改已发布的Git历史记录。它可能给他人和您造成麻烦。阅读有关推动或重新踩踏的所有警告。

如果我对您的理解正确,并且您已在评论中确认这一点,那么您现在所拥有的是:

a-b-c--d--e <- master
   \
    c'-d'-e' <- A

您希望它成为现实:

a-b (-c--d--e)
   \
    c'-d'-e' <- A, master

然后,您可以简单地删除master分支,并在适当的提交时重新创建。或者,强制创建它(结果是相同的):

git branch -f master A

这将创建一个分支master,该分支指向与A相同的提交,包括A的所有历史记录。 master 的现有历史记录将丢失。