2017-02-14 1 views
1

を得た:Gitはmasterブランチのファイルを上書きする-X引数と合併、それでも私はbelowsのようなマスターブランチ内の1つのファイル持っているいくつかの削除コード

void func(int a, string b) { 
    ... 
    if (a == 1) { 
     ... 
    } 
    ... 
} 

.... 
func(1, "test"); 
... 

は、その後、私は新しいブランチB1をチェックアウトし、いくつかの作業を行うにとにファイルを変更します。

void func(string c, string b) { 
    ... 

    ... 
} 

.... 
func("test", "test"); 
... 

一方、マスターブランチは他の男によって更新されているので、私は(私はそれをリベースことはできませんいくつかの理由があります)このブランチをマージする必要があります。それは作品

git merge -X ours master 

が、削除されたコードセグメントで:競合をマージがありますので、私は-X引数を追加するマージするとき

void func(string c, string b) { 
    ... 
    if (a == 1) { 
     ... 
    } 
    ... 
} 

.... 
func("test", "test"); 
... 

私はいくつかの引数を逃しましたか?

+0

'-X ours'はファイル全体で動作しません。私の答えは別の質問を参照してください:http://stackoverflow.com/a/42104116/1256452 – torek

答えて

1

競合をマージがありますので、あなたが-X oursを追加したとき、私はそれがを依存-X引数

を追加:あなたは、適切に競合(gitのマージアボート)を持っていたあなたの最初のマージをキャンセルする必要があります-X oursマージオプションを使用して新しいマージを試みる前に、コードの状態を確認してください。
その後、もう一度やり直すことができます。

そして、削除されたコードが自分のコードと同じ行にあることを確認する必要があります(これは、削除されたコードが新しいバージョンのmasterに変更された場合、競合を意味します)。-X oursは、それらの行。

+0

はい、私は "git merge master"を試して最初に衝突しました。現在のブランチのコードは私が必要とするものなので、-X ourを追加します。問題は、削除されたコードがまだそこにあることです。削除されたコードはマスターブランチによって変更されませんでしたが、同じファイルに変更されたものがあります。 –

+0

@FeiyuZhou真実ですが、まずマージを取り消してから-X oursを使ってやり直してください。 – VonC

+0

はい、私はそれをキャンセルします--abort –

関連する問題