シンプルな2行Gitコンフリクトの解決
2つのブランチが同じ行を異なる内容で編集した場合の、最も基本的なGitマージコンフリクトの解決方法を学びます。oursとtheirsマーカーを理解します。
Basic Conflicts
詳細な説明
最もシンプルなコンフリクト
2行コンフリクトは、日常の開発で最も多く遭遇するタイプです。2つのブランチがファイル内のまったく同じ行を変更した場合に発生します。Gitはどちらのバージョンを残すか判断できないため、両方のバージョンをコンフリクトマーカーで囲みます。
見た目
<<<<<<< HEAD
const API_URL = "https://api.example.com/v2";
=======
const API_URL = "https://api.example.com/v3";
>>>>>>> feature/upgrade-api
マーカーの内訳
| マーカー | 意味 |
|---|---|
<<<<<<< HEAD |
現在のブランチのバージョンの開始 |
======= |
2つのバージョンの区切り |
>>>>>>> feature/upgrade-api |
取り込み元ブランチのバージョンの終了 |
解決戦略
Accept Oursはv2を保持します — APIアップグレードの準備ができていない場合に適しています。Accept Theirsはv3を保持します — アップグレードが完了しテスト済みの場合に適しています。多くの場合、判断する前にテスト、ドキュメント、デプロイ状況などの広い文脈を確認する必要があります。
予防のヒント
1行コンフリクトは、チームとの変更内容の共有によって防げることが多いです。同僚が設定変更に取り組んでいることを知っている場合、同じ定数を並行して編集しないように調整しましょう。小さく頻繁なマージもコンフリクトの発生を減らします。
ユースケース
featureブランチをmainにマージしていて、両方のブランチがAPI エンドポイントURLを変更した設定ファイルでGitがコンフリクトを報告します。