我有一个相对较大的功能分支,我想与master合并,并且合并产生了很多冲突。有没有办法一次合并一个提交的分支,这样我就可以一次解决一个冲突并检查一切是否正常工作?
我能想到的一个解决方案是使用rebase而不是merge,但随后历史将变得扁平,我不想要那样。我可以创建额外的"合并修复"但是,提交,如果有帮助的话。
答案 0 :(得分:4)
你可以合并“一次一个提交”,但它会为你在另一个分支上的每个提交创建一个合并提交,这非常重。
要做到这一点,只需查看与master
分歧的位置,并在master
分支上,从每个提交开始git merge <commit_id>
。
否则,只需一劳永逸地解决大冲突,阅读你的提交历史的每个人都会感谢你。
在功能中解决此问题的一种好方法是在功能分支中使用常规合并主数据。
答案 1 :(得分:4)
而不是重新定义大特征分支,您可以改为修改它的副本。在rebase之后解决所有冲突后,您可以撤回差异:
$ git checkout -b big_feature_branch.rebased big_feature_branch
$ git rebase master big_feature_branch.rebased
# resolve all conflicts
$ git checkout big_feature_branch
$ git diff big_feature_branch big_feature_branch.rebased | git apply -
$ git ci -am "merge fix"
$ git branch -D big_feature_branch.rebased