2012-11-07 2 views
19

を維持し、マージは、しかし、私の最新のマージには、両方を維持するために最もよく似合います側面。 Gitには手動でファイルを編集しないようにするための "戦略"がありますか?gitの私は</p> <pre><code>git merge -X theirs foo </code></pre> <p>「彼らを守る」ための</p> <pre><code>git merge -X ours foo </code></pre> <p>と、この「地雷を保つ」ためにこれを使用してマージするために、両方の

+0

連合「の両方を保つ」ためにマッピングされていない – tinybyte

答えて

12

これらの競合を解決するための「マージ戦略」はありません。あなたは本当にのような競合する場合は

しかし、:

<<<< ours 
Foo 
========= 
Bar 
>>>> theirs 

Foo 
Bar 

に解決するために、あなたは 'マージドライバ' を設定することができます。 gitattributes manページから:

組合

ラン3ウェイファイルレベルは、テキストファイルのマージが、代わりに衝突マーカを残す、 両方のバージョンからのラインを取ります。これは、 の結果のファイルに追加された行をランダムな順序で残す傾向があり、 ユーザーは結果を確認する必要があります。 がその意味を理解していない場合は、これを使用しないでください。

これを使用するために.gitattributesに行を追加します。

*.whatever merge=union 
+6

あなたにとって有用である場合の答えを受け入れます。連合は "両方を維持する"マイナス交差点です。これは、リソースファイルのようにXMLに "両方を保つ"ようにしようとするとひどく失敗します。 –

+0

2つのdiffハンクスクが競合する場合、両者は完全に両方の状態に保たれているようです。 – max630

+0

[ここ](http://pastebin.com/LrnAEMLs)は短いデモです – max630

関連する問題

 関連する問題