❓ コンフリクトとは?
コンフリクト(conflict)とは、複数の変更が同じファイル・同じ行に加わっていて、Gitが自動的に統合できない状態です。
そのままだとコミット・マージ・プルなどの操作が止まってしまいます。
🕰️ どんなときに起きる?
git mergeで別ブランチを統合したときgit pullでリモートの変更を取り込んだときgit rebase中に履歴が書き換わったとき
🔧 解決の流れ
Gitはコンフリクトが起きた場所をファイル内に記号で示します:
<<<<<<< HEAD
自分の変更
=======
相手の変更
>>>>>>> feature-branch
これを手動で修正して、どちらの内容を残すか、または両方かを決めましょう。
修正が終わったら:
# 修正後に add
git add ファイル名
# マージ完了を Git に伝える
git commit
📝 解決例
次のようなファイルがあるとします:
<<<<<<< HEAD
console.log("こんにちは");
=======
console.log("Hello");
>>>>>>> feature/en
たとえば日本語で統一したい場合:
console.log("こんにちは");
このように修正したあと、git add → git commit で解決完了です。
💡 補足:GUIツールでの解決
Visual Studio Code や Sourcetree などの GUI では、差分が見やすく、ボタンで解決できます。