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

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

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

コンフリクトの解消

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

vim branch_learning.txt
Vimの起動

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

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

Vimで開かれた競合があるファイル

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

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

競合を解決するには、次のいずれかの方法を選択します:

  • 現在のブランチmaster)の変更を保持する;
  • マージ対象ブランチfeature/new-feature)の変更を保持する;
  • 手動で編集する。

両方のブランチの変更を組み合わせてファイルを手動で編集するには、次の手順を実行します:

1. 編集モードに入る

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

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

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

New branch
New line from the master branch
New line from the feature branch
コンフリクトの解決

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

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

Vimの終了

ファイルのコミット

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

git add branch_learning.txt
git status
解決済みファイルの追加

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

git commit
ファイルのコミット

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

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

Vimでiキーを押して挿入モードに入り、メッセージを修正します。コンフリクトの解決方法を説明するために、次の行を追加します。 Kept lines from both branches

以下が完成したコミットメッセージです:

Merge branch 'feature/new-feature'

Kept lines from both branches

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

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

コミットが正常に完了し、マージコンフリクトが解消されました。

3方向マージ

次に、コミット履歴をグラフ形式(--graphフラグ)で、コミットごとに1行(--onelineフラグ)で表示してみましょう。

git log --graph --oneline
コミット履歴グラフ

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

question mark

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

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

すべて明確でしたか?

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

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

セクション 4.  6

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 4.  6
some-alt