Git:如何正确合并两个功能完全不同的分支?
想象一下你在同一个项目中有两个分支的情况,第一个分支的一部分可以在另一个分支上进行重构。 但有一段时间你需要保持两个分支的功能,所以你正在做错误修复和关键功能添加到他们两个,有时以不对称的方式。 而且在某个时刻,有一段时间你必须将重构分支合并到原始分支上。 在这种情况下使用最好的技术是什么? 是否仍有可能保持历史的清洁?
但更重要的是,在这种情况下本来应该是我的最初策略?
由于任务是简单地使用另一个分支而不是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
本地我们现在完成。 但是,您不能简单地删除GitHub上的master
分支。 您需要先将另一个分支作为默认分支。 这可以在存储库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
。 此外,您可以删除在迁移过程中可能创建的所有额外分支。
或者,如果您希望将所有操作保存在历史记录中,请在此处查看正确的答案。
既然你有2个分支,其中一个是重要的,另一个是重要的,而你保持着两个分支......我会说Git不会神奇地帮助你。 为了帮助git,您应用于分支1的补丁/更改需要与分支2相似(但不完全相同)。
由于它被重构,代码可能不相似,除非新代码在两个分支上被模块化为相同。
首先你应该做什么?
更新:为了管理对两个分支的更改,您可能只需要一个过程,例如: - 主要工作于分支 - 重构 - 将每个“故事”或工作项目合并为分支 - 遗留
第二步是我认为如果分支之间的代码太不同,我会做很多工作。 如果您必须维护两个分支,请尝试将新代码封装在可在两个分支中使用的库中。 这将使得从一个分支合并到另一个分支。
链接地址: http://www.djcxy.com/p/43553.html上一篇: Git: How to properly merge two functional and quite different branches?
下一篇: Git: possible to make a branch into the master, ignoring any merge conflicts?