2010-06-01 52 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

相關問題