3-way merge の「3方向」とは何か?

https://ja.stackoverflow.com/questions/52019/git-%E3%81%AE-3-way-merge-%E3%81%A8%E3%81%AF%E5%85%B7%E4%BD%93%E7%9A%84%E3%81%AB%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A7%E3%81%99%E3%81%8B
・方向1「現在ブランチのコミット」
・方向2「マージ対象ブランチのコミット」
・方向3「現在ブランチとマージ対象ブランチの共通祖先コミット」
……の3つのコミットを元にしているので3wayマージである。



実際にマージ結果を作成する手順は以下。
X と Y の共通祖先となるコミット B (base) を見つける。
「X と B の diff」、「Y と B の diff」をそれぞれ求める。
2つの diff の結果を比較して、マージ結果を作成する。

対して 2-way merge は、単に「現在ブランチのコミット」「マージ対象ブランチのコミット」の2つのdiffからマージ結果を作成する。