这基本上是由于大师级上的大规模C类被重构为两个较小的类C1和C2。然后将C作为C2的子类,并将其缩减为骨架版本以实现向后兼容。所以从那时起,master包含C,C1和C2。在那个主提交git上说C被重命名为C1。在此之前,该分支最后更新。 (所有C ++代码,如果它有助于可视化所涉及的文件)
显然,当我尝试将分支转换为主分支时,存在需要解决的冲突。
像往常一样,我使用了mergetool。
所以现在mergetool提出以下内容: 在Local上,我有C的骨架版本。 Base和Remote对C进行了一系列更改。
因为C的骨架版本存在于Local上,所以我得出结论,Base和Remote的更改实际上应该进入C1,只留下C。
我的问题是,我该怎么做?
答案 0 :(得分:4)
可能在这个rebase实例上,更直接地解决了合并冲突的问题:
git checkout --ours C git show :1:/path/to/C # check what need to be copied to C1 from Base git show :3:/path/to/C # check what need to be copied to C1 from remote git add /path/to/C git add /path/to/C1
git commit