error

Gitの Merge Conflict (競合) が発生する仕組みと安全な解消手順

チーム開発においてGitを使用していると必ず直面する「Merge Conflict(マージ競合)」の仕組みと、コードを壊さずに安全に解消するための手順を解説します。 【コンフリクトはなぜ起きるのか?】 Gitは非常に賢いバージョン管理システムですが、唯一「同じファイルの、全く同じ行」を複数の人間が同時に書き換えてしまった場合、どちらの変更を優先すべきか自動で判断することができません。この状態に陥った際、Gitは安全のためにマージ(統合)処理を一時停止し、人間に手動での解決を求めます。これがコンフリクトです。 【解消のための具体的なステップ】 1. 競合箇所の特定 コンフリクトが発生した状態(`(main|MERGING)` のような表示)で対象のファイルを開くと、Gitが挿入した特殊な記号が見つかります。 `<<<<<<< HEAD` (あなたが今いるブランチのコード) `=======` (マージしようとしている相手のコード) `>>>>>>> feature-branch` 2. 手動でのコード修正 VSCodeなどのモダンなエディタを使用している場合、この記号の近くに「現在の変更を取り込む」「両方の変更を取り込む」などの便利なボタンが表示されます。これらを利用するか、手動で記号(`<` `=` `>`)を削除し、最終的に残したい正しいコードの形に整えます。 3. 解決の宣言とコミット ファイルの修正が終わったら、ターミナルで `git add 修正したファイル名` を実行し、Gitに「競合を解決した」と伝えます。その後、`git commit` を実行することで、停止していたマージ処理が完了し、新たなマージコミットが作成されます。 コンフリクトを防ぐための最大のコツは、ブランチの寿命を短くし、こまめにメインブランチの変更を自分の手元にプル(`git pull`)して同期させておくことです。
← 記事一覧に戻る