2010-06-01 61 views
3

这基本上是主体上的大量类C被重构为两个较小类C1和C2的结果。然后将C作为C2的一个子类,并为了向后兼容性而裁剪为骨架版本。所以从那时起,主人包含C,C1和C2。在那个主提交混帐说C被重命名为C1。该事件发生前最后一次更新。 (所有的C++代码,如果它可以帮助可视化所涉及的文件)当分支上的文件分裂成主文件上的两个文件时,合并发生改变

显然,当我试图分支到主衍合,存在需要解决的冲突。

和往常一样,我使用了mergetool。

所以,现在的合并工具又发表了以下几点: 本地,我有C. 基地的骨骼版本和远程不得不C.

一堆变化

因为C的骨骼版本存在于在本地,我得出结论认为,从Base和Remote进行的更改实际上应该进入C1,而只保留C。

我的问题是,我该怎么做?

回答

4

可以在这个复位情况下,合并冲突的更直接的分辨率是为了:

 
    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
+0

它也可能是使用'--confli的选项克拉= diff3'选项来获得所有在实际文件的帅哥,我想。 (+1) – Cascabel 2010-06-02 13:38:35

+0

谢谢!这正是我所追求的。 – Carl 2010-06-02 22:48:20

相关问题