当分支上的文件分裂成主分支上的两个文件时,合并更改

3
这基本上是由于主类C被重构成两个较小的类C1和C2。然后将C作为C2的子类,并将其缩减为向后兼容的骨架版本。从那时起,主分支包含了C、C1和C2。在该主分支提交中,git说C被重命名为C1。该分支在此之前最后更新。(所有涉及的文件都是C++代码)
显然,当我尝试将该分支rebase到主分支时,需要解决冲突。
像往常一样,我使用mergetool。
因此,现在mergetool显示如下: 在本地,我有C的骨架版本。 Base和Remote有对C进行的许多更改。
由于本地存在C的骨架版本,我得出结论,Base和Remote的更改实际上应该进入C1,而不是C。
我的问题是,我该如何做到这一点?
1个回答

4

也许在这个rebase实例中,更直接的解决合并冲突的方法是:

    git checkout --ours C
    git show :1:/path/to/C # 检查需要从基础版本复制到C1的内容
    git show :3:/path/to/C # 检查需要从远程版本复制到C1的内容
    git add /path/to/C
    git add /path/to/C1
  • git commit

可能还可以考虑使用--conflict=diff3选项来获取实际文件中的所有块。 - Cascabel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接