マージコンフリクトの解決
メニューを表示するにはスワイプしてください
コンフリクトの解消
前の章でマージコンフリクトが発生したため、ここで解消を行う。
まず、以下のコマンドを使用してVimエディタで branch_learning.txt ファイルを開く。
vim branch_learning.txt
Vim がインストールされていない場合は、上記コマンドの vim を他のテキストエディタ名(nano や atom など)に置き換えて使用可能。
ただし、ここで示す手順と合わせやすくするため、Vim の利用を推奨。
以下は Vim エディタでファイルを開いた例。
現在、競合マーカーが表示され、競合しているセクションが示されています。
これらのマーカーは、矢印や特殊記号を使ってブランチ間の違いを強調します:
<<<<<<< HEAD: 現在のブランチ(master)の変更の開始を示す;=======: 現在のブランチ(HEAD)とマージ対象ブランチの変更を区切る;>>>>>>> feature/new-feature: マージ対象ブランチの変更の終了を示す。
競合を解決するには、次のいずれかの方法を選択します:
- 現在のブランチ(
master)の変更を保持する; - マージ対象ブランチ(
feature/new-feature)の変更を保持する; - 手動で編集する。
両方のブランチの変更を組み合わせてファイルを手動で編集するには、次の手順を実行します:
1. 編集モードに入る
まず、Vimでiキーを押して挿入モードに入ります。
これでテキストの編集が可能になります。
2. コンフリクト部分の編集
次に、両方のブランチからの行を順番に結合。 ファイルの最終的な内容は以下のようになります:
New branch
New line from the master branch
New line from the feature branch
3. 編集モードの終了、保存、終了
Escapeキーを押して挿入モードを終了。
その後、:wqと入力し、Enterキーを押して変更を保存し、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を押します。
コミットが正常に完了し、マージコンフリクトが解消されました。
次に、コミット履歴をグラフ形式(--graphフラグ)で、コミットごとに1行(--onelineフラグ)で表示してみましょう。
git log --graph --oneline
ここでは、最新のマージコミットと、三者間マージの特徴的な構造を確認できます。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください