想象一下这样一种情况,同一个项目有两个分支,第一个分支的一部分对另一个分支进行了大幅重构。但有一段时间,您需要保持两个分支的功能,因此您需要对两个分支进行错误修复和关键功能添加,有时是以不对称的方式。在某些时候,您必须将重构的分支合并到原始分支上。在这种情况下最好使用什么技术?还能保持历史清白吗?
但更重要的是,在这种情况下我的初始策略应该是什么?
由于任务只是使用另一个分支而不是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
本地我们现在已经完成了。但是你不能简单地删除master
GitHub 上的分支。您需要先将另一个分支作为默认分支。这可以在存储库中完成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
然后回到Settings > Default Branch
并将默认分支切换回master
。此外,您可以删除在迁移过程中可能创建的所有额外分支。
或者,如果您希望保存历史记录中的所有操作,请检查正确答案here https://stackoverflow.com/questions/2763006/change-the-current-branch-to-master-in-git.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)