jay*_*rjo 10 git git-merge git-rebase
想象一下这样一种情况:你有两个同一个项目的分支,第一个分支的一部分在另一个分支上有重大的重构.但有一段时间你需要保持两个分支功能,所以你正在修复错误和两个关键功能添加,有时以不对称的方式.在某些时候,你需要将重构分支合并到原始分支上.在这种情况下使用的最佳技术是什么?是否仍然可以保持历史清洁?
但更重要的是,在这种情况下我最初的策略应该是什么?
由于任务是简单地使用另一个分支而不是master,你可以简单地删除master分支或重命名它让我们说 - legacy,然后采取另一个分支并重命名为master.而已.以下是您可能需要执行的实际命令,以便在本地和GitHub上实现目标:
git branch -m master legacy # rename local master to legacy
git checkout legacy
git branch -m another_branch master # another_branch will be our new master
Run Code Online (Sandbox Code Playgroud)
在当地我们现在已经完成了.但是你不能简单地删除masterGitHub上的分支.首先需要将另一个分支作为默认分支.这可以在存储库中完成Settings > Default Branch.完成此操作后,您可以继续:
git push origin :master # remove master on GitHub
git push origin master # push out our new master branch
git push origin legacy # push our legacy branch too
Run Code Online (Sandbox Code Playgroud)
然后返回Settings > Default Branch并将默认分支切换回master.此外,您可以删除在迁移过程中可能已创建的所有额外分支.
或者,如果您要将所有操作保存在历史记录中,请在此处查看正确答案.