gitでマージした時にコンフリクトが起きた場合は次の手順で対処できます。
- お・ち・つ・け・!
- コンフリクトを手動でマージします。(マージ元、マージ先、どちらかを採用するコマンドもあります。)
- 「$git add .」コマンド等でマージしたファイルをステージングします。
- 全てのコンフリクトが解決したらgit statusコマンドの表示がAll conflicts fixed but you are still merging.に変わります。
- 「$git commit」コマンドでコミットします。
- コンフリクトが頻繁に起きてしまう場合、開発運用に問題がある可能性が高いので見直してみましょう
おまけ1
手動マージ中に「やっぱやんぴ、マージを最初からやり直したい!」となった場合は次のコマンドを使います。
[ファイル指定]
$git checkout --merge hoge.txt
[カレントディレクリ配下すべて]
$git checkout --merge .
おまけ2
マージ元、マージ先、の一方を採用するにはマージ中にcheckoutコマンドを使用します。例)topicというブランチをmasterへマージした場合
1.masterの内容を採用する場合
$git checkout --ours ファイル名
2.topicの内容を採用する場合
$git checkout --theirs ファイル名
おまけ3
$git pullでコンフリクトが起きてしまった場合例えば
$git pull master origin/master
は
$git fetch origin/master
$git merge origin/master
をまとめて実行しているだけなのです。
つまり、本記事のブランチマージでコンフリクトが起きた場合の対処と同様の方法で解決できるはずです。