Dance with Agents

マージコンフリクトとは何か、なぜ起きるか

2つの並行世界を合流させる

ブランチで作った並行世界を、元の世界に合流させる作業をマージと呼びます。多くの場合、これは自動で問題なく進みます。

コンフリクトが起きる瞬間

問題が起きるのは、2つの並行世界で、ファイルの同じ場所を、それぞれ違う内容に書き換えていたときです。Gitは「どちらを正解として採用すればいいか」を自分では判断できません。そこで「これは人間に決めてもらうしかない」と、作業を止めて教えてくれます。これがマージコンフリクトです。

壊れたわけでも、失敗したわけでもありません。Gitが正直に「分からない」と言っている状態、と捉えると身構えずに済みます。

どう対処するか

コンフリクトが起きたファイルには、どちらの内容がぶつかっているかを示す印(<<<<<<<のような記号)が挿入されます。中身を読んで、どちらを残すか(あるいは両方混ぜるか)を自分で決めて書き直し、改めてコミットすれば解決です。

コンフリクトを減らすコツ

  • こまめにコミットする(変更が小さいほど、ぶつかる範囲も小さくなる)
  • 長期間分かれたままのブランチを作らない
  • 心配なら、マージする前に一度git statusで状態を確認する

コマンドの詳細はGit基礎コマンド一覧を参照してください。

Gitの記事

Gitのページへ →