3wayマージでコンフリ解消を便利にできる

3wayマージの利点

  • コンフリ状態のコードが、「マージの起点コミット」「マージさせたいコミット」「2 つのコミットの最近共通祖先となるコミット」で見れること  例えばこんな感じ。
<<<<<<< マージの起点コミット
def hoge
  puts "hoge"
end
||||||| 2つのコミットの最近共通祖先となるコミット
def hoge
  p "fuga"
end
=======
def hoge
  print "hoge"
end
>>>>>>> マージさせたいコミット

 さらに、この状態でコミットしておけば、コミット履歴を追うとどうやってコンフリ解消をやったのかレビュワーがわかる。

3wayマージを行うための設定

 以下のコマンドでコンフリが発生した際に各コミットのdiffを上記のように表示できる。

git config --global merge.conflictStyle diff3