Menu
Coddy logo textTech

マージコンフリクト

CoddyのTerminalジャーニー「バージョン管理」セクションの一部 — レッスン 37/58。

もし両方のブランチが同じファイルの同じ行を変更した場合、Gitはどちらのバージョンを残すべきか判断できません。Gitはマージを一時停止し、あなたに決定を求めます。

競合したファイルには、両方のバージョンを示す特別なマーカーが表示されます:

<<<<<<< HEAD
the version on main
=======
the version on feature
>>>>>>> feature

あなたの作業は、ファイルを手動で編集することです。1つのバージョンを選択するか、それらを組み合わせるか、あるいは新しく書き直してください。その後、すべてのコンフリクトマーカー(<<<===>>> の行)を削除します。

ファイルの内容が正しくなったら、それをステージングし、別のコミットでマージを完了させます:

git add notes.txt
git commit -m "Resolve merge conflict in notes"

途中で気が変わった場合は、すべてを中止してマージ前の状態に戻すことができます:

git merge --abort
challenge icon

チャレンジ

中級

フォルダには、hello という行が含まれた notes.txt があります。

リポジトリを初期化し、最初のファイルをコミットしてください。alt ブランチを作成し、notes.txthi from alt と書き換えてコミットします。

main に戻り、notes.txthi from main と書き換えてコミットします。

altmain にマージしようとしてください。マージはコンフリクトします。git merge --abort でマージを中止し、catnotes.txt の内容を表示して、ファイルが main バージョンに戻っていることを確認してください。

チートシート

両方のブランチが同じ行を編集すると、Gitはマージを一時停止し、ファイルにコンフリクトマーカーを追加します:

<<<<<<< HEAD
the version on main
=======
the version on feature
>>>>>>> feature

ファイルを編集して希望の結果にし、すべてのマーカーを削除してから、ステージングしてコミットします:

git add notes.txt
git commit -m "Resolve merge conflict in notes"

マージをキャンセルしてマージ前の状態に戻すには:

git merge --abort

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

バージョン管理のすべてのレッスン