首页 > 解决方案 > 用孤立分支重写 master 但保留历史记录

问题描述

master在我的项目中,我从分支中的很多提交开始。在发布了几次之后,我意识到我所采用的方法可能根本不是我们想要的。

新方法需要完全重写代码,所以我决定从一个孤立分支 ( a-new-beginning-branch) 开始。我喜欢它,最终,它成为了我事实上的主分支。现在我想mastera-new-beginning.

我找到了如何使当前的 Git 分支成为主分支,但是当按照那里显示的步骤进行操作时,我收到了错误消息fatal: refusing to merge unrelated histories。我知道我可以使用该–allow-unrelated-histories选项,但我并不真正了解它的作用,也不想破坏。

我还找到了如何用孤立分支覆盖主分支,但我不想删除主分支中的历史记录。

理想情况下,我希望得到一个直系历史,但如果这不可能,我也会对某种合并感到满意。

git 工作流程

任何想法将不胜感激!

标签: git

解决方案


我不明白您为什么要保留当前master分支的当前历史记录a-new-beginning

如果您的目标只是拥有一个以您的分支master历史命名的a-new-beginning分支,您可以这样执行:

git branch -m master master-backup
git push origin :master master-backup

git branch -m a-new-beginning master
git push origin :a-new-beginning master

这样,您将在本地和远程更新分支。


推荐阅读