Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ マージコンフリクトの解決 | Gitにおけるブランチの操作
Gitの基礎

bookマージコンフリクトの解決

メニューを表示するにはスワイプしてください

コンフリクトの解消

前の章でマージコンフリクトが発生したため、ここで解消を行う。 まず、次のコマンドを使って Vim エディタで branch_learning.txt ファイルを開く。

Vimの起動

Vim がインストールされていない場合は、vim を他のエディタ名(nanoatom など)に置き換えてコマンドを実行できる。 ただし、ここで示す手順と合わせやすくするため、Vim の使用を推奨。

以下は Vim エディタでファイルを開いた状態。

Vimで開かれたコンフリクトがあるファイル

現在、コンフリクトマーカーが表示され、競合しているセクションが示されています。 これらのマーカーは、矢印特殊記号を使ってブランチ間の違いを強調します:

  • <<<<<<< HEAD: 現在のブランチmaster)の変更の開始を示す
  • =======: 現在のブランチHEAD)の変更とマージ対象ブランチの変更を区切る
  • >>>>>>> feature/new-feature: マージ対象ブランチの変更の終了を示す

コンフリクトを解決するには、次のいずれかの方法を選択します:

  • 現在のブランチmaster)の変更を保持
  • マージ対象ブランチfeature/new-feature)の変更を保持
  • 手動で編集して内容を調整

両方のブランチの変更を組み合わせて手動でファイルを編集する場合は、以下の手順に従います:

1. 編集モードに入る

まず、Vimiキーを押して挿入モードに入ります。 これでテキストの編集が可能になります。

2. コンフリクト部分の編集

次に、両方のブランチからの行を順番に結合。 ファイルの最終的な内容は次のようになります。

コンフリクトの解決

3. 編集モードの終了、保存、終了

Escapeキーを押して挿入モードを終了。 その後、:wqと入力し、Enterを押して変更を保存し、Vimを終了。

Vimの終了

ファイルのコミット

コンフリクトが解消されたので、branch_learning.txt ファイルをステージングエリアに追加し、ステータスを確認。

解決済みファイルの追加

ファイルが変更され、正常にステージングエリアに追加されました。 次に、コミットを実行します。

ファイルのコミット

再度、デフォルトのテキストエディタ(この例ではVim)が開き、マージに関するデフォルトのコミットメッセージが表示されます。

デフォルトのコミットメッセージ

Vimで挿入モードに入るには、iを押し、次にメッセージを修正して Kept lines from both branches という行を追加し、コンフリクトの解決方法を記述。

以下が完全なコミットメッセージ:

挿入モードを終了し、変更を保存してVimを閉じるには、Escapeキーを押し、:wqと入力してEnterを押す。

変更されたメッセージを保存してVimを終了する

コミットが成功し、マージコンフリクトが解消されました。

次に、コミット履歴をグラフ(--graphフラグ)で、コミットごとに1行(--onelineフラグ)で確認します。

コミット履歴グラフ

ここでは、最新のマージコミットと三者間マージの特徴的な構造を確認できます。

question mark

Gitでマージコンフリクトを解決する推奨方法は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  6

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  6
some-alt