Gitのブランチマージで発生するコンフリクトを解決する方法
Gitのブランチをマージすると、別々のブランチで開発されたコードを統合して新しいブランチに結合することができます。 ブランチマージには次のコマンドを使います。
git merge <ブランチ名>
コンフリクト発生時
以下ではGitでブランチをマージする際に発生するコンフリクトの解消方法について解説します。Gitでマージを行うときにコンフリクトが発生することはよくあることですが、本記事を参考にしっかりと対処することでスムーズにマージを完了することができます。
コンフリクト発生時は次のようなメッセージが表示されます。
Auto-merging <ファイル名>
CONFLICT (content): Merge conflict in <ファイル名>
Automatic merge failed; fix conflicts and then commit the result.
この状態でgit statusコマンドを実行すると、次のようにUnmerged pathsが表示されます。
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: <ファイル名>
コンフリクトの解消方法
- エディタなどを使ってコンフリクトの発生したファイルを修正する
- 次のコマンドを実行し、コンフリクトしているファイルをステージングする
この状態でgit statusコマンドを実行すると次のように表示されるgit add <ファイル名>
On branch master All conflicts fixed but you are still merging. (use "git commit" to conclude merge)
- 全てのコンフリクトファイルを修正・ステージングしたら、次のコマンドを実行してマージを完了する
git commit
または
git merge --continue
ブランチのマージ後
マージしたブランチが不要なら削除します。