merge.conflictStyle
に設定してマージを行っていdiff3
ます。通常、これにより、4 セットの文字で区切られた 3 つのセクションが挿入されます。
MergeのGit ドキュメントでは、これらの記号が単純なケースで何を意味するかを明確に説明しています (後述)。
通常の差分 3:
Here are lines that are either unchanged from the common ancestor, or cleanly resolved because only one side changed.
<<<<<<< yours:sample.txt
Conflict resolution is hard;
let's go shopping.
|||||||
Conflict resolution is hard.
=======
Git makes conflict resolution easy.
>>>>>>> theirs:sample.txt
And here is another line that is cleanly resolved or unmodified.
ただし、余分な行が多数あるため、より複雑な結果が得られます (以下を参照)。現在マージしているコミットの祖先に多数のマージを行ったという事実と関係があると感じていますが、余分な行が何を意味するのかわかりません。また、この動作に関するドキュメントが見つからないようです。
これが私が得たものです(もちろん、コードのアイデンティティを保護するために編集されています)。
(マージしようとしているコミットのコードには競合マーカーがないため、それは答えではありません。)
<<<<<<< ours
||||||| base
<<<<<<< Temporary merge branch 1
||||||| merged common ancestors
if (sendRedirect(result))
return new Result("redirect");
=======
if ( result.getId() != null )
{
object = new SomeObject(searchResult.getId()) ;
}
if (sendRedirect(result)){
return new Result("redirect");
}
>>>>>>> Temporary merge branch 2
=======
if ( result.getId() != null )
{
object = new SomeObject(searchResult.getId()) ;
}
>>>>>>> theirs
この質問は同じことを尋ねていると思いますが、答えは、質問者がタイトルですでに知っているものとしてすでに示したdiff3と関係があることを説明していません。その質問を2回編集しようとしましたが、拒否されたので、もう一度質問します。