シンプルな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 Oursv2を保持します — APIアップグレードの準備ができていない場合に適しています。Accept Theirsv3を保持します — アップグレードが完了しテスト済みの場合に適しています。多くの場合、判断する前にテスト、ドキュメント、デプロイ状況などの広い文脈を確認する必要があります。

予防のヒント

1行コンフリクトは、チームとの変更内容の共有によって防げることが多いです。同僚が設定変更に取り組んでいることを知っている場合、同じ定数を並行して編集しないように調整しましょう。小さく頻繁なマージもコンフリクトの発生を減らします。

ユースケース

featureブランチをmainにマージしていて、両方のブランチがAPI エンドポイントURLを変更した設定ファイルでGitがコンフリクトを報告します。

試してみる — Git Conflict Resolver

フルツールを開く