kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu Git その242 - Octopusマージストラテジーでマージを中止する(git merge)

Octopusマージストラテジーでマージを中止する

  「Octopusマージストラテジー」で「マージコンフリクト」が発生すると、マージに失敗します。
  マージに失敗した場合、マージを中止し、マージ前の状態に戻す必要があります。
  ここでは、マージの中止方法を紹介します。

マージコンフリクトが発生する状況

  まず、「マージコンフリクト」が発生する状況を見てみます。

  1.ブランチの確認

    現在のブランチ構成を確認すると、以下のようになっています。
    現在のブランチは、「master」ブランチであることが分かります。
    同様に、「HEAD」は「master」ブランチを指していることが分かります。



    ここでは例として、「master」ブランチに「fix」ブランチと「new」ブランチをマージします。

  2.ブランチの状態

    ブランチの状態を図にすると、以下のようになります。


    ここでは、「マージコンフリクト」が発生する「common.txt」ファイルに着目します。

  3.common.txtファイルの中身

    各ブランチの「common.txt」ファイルの中身は、以下のようになっています。

    masterブランチ



    fixブランチ



    newブランチ




  4.マージを行う

    「Octopusマージストラテジー」でマージします。
    コマンドの詳細は、「ファイルのマージを行うコマンドの説明」を参考にしてください。

git merge --verbose --strategy=octopus fix new


  5.マージコンフリクトの発生

    以下のように、「common.txt」ファイルで「マージコンフリクト」が発生します。


  6.ワーキングディレクトリーの状態

    「ワーキングディレクトリー」の状態を確認すると、「common.txt」がマージされていない状態になっています。


  7.common.txtファイルの中身

    「マージコンフリクト」が発生した「common.txt」ファイルの中身を見ると、以下のようにコンフリクトが発生した箇所に、「コンフリクトマーカー」が挿入されています。


    「コンフリクトマーカー」には、ブランチ名が出力されておらず、どのファイルの変更箇所が衝突しているのか、わかりづらい状態です。

    また、中途半端にマージされている状態なので、マージを中止する必要があります。
    上記の例では、「new」ブランチがマージされていない状態です。

    また、この状態でコミットを行っても、「マージコミット」になりません。

マージを中止する

  マージを中止して、マージ前の状態に戻します。

  1.マージの中止

    「端末」から、以下のコマンドを実行します。

git reset --hard HEAD


  2.リセット完了

    以下のように、マージが中止され、マージ前の状態に戻ります。



Git
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 22.04 その98 - 入力ソースとキーボートレイアウトと日本語入力のカスタマイズ
    入力ソースとキーボートレイアウトと日本語入力 「Ubuntu」ではユーザーが利用しているキーボードレイアウトや日本語入力のカスタマイズが可能です。
  • Ubuntu 20.04 その74 - UbuntuとUEFIセキュアブート
    UbuntuとUEFIセキュアブート 「Ubuntu」と「UEFIセキュアブート」に関するお話です。
  • Ubuntu 22.04 その64 - Windows/Linux/macOSでUbuntu 22.04 LTSのライブUSBメモリーを作るには
    Ubuntu 22.04 LTSのライブUSBメモリーを作る方法 Windows/Linux/macOSでPC向け「Ubuntu 22.04 LTS」のライブUSBメモリーを作る方法を紹介します。
  • Ubuntu 22.04 LTSのインストール その5 - UEFI環境でパーティションの作成と構成 〜 ブートローダーのインストール先の選択
    UEFI環境でパーティションの作成と構成を行う UEFI環境でパーティションの作成と構成を行います。
  • Ubuntu 22.04 その107 - ローカルネットワーク上でフォルダーやファイルを共有するには
    ローカルネットワーク上でフォルダーやファイルを共有するには 「ファイル(Nautilus)」アプリはファイルマネージャーです。 「ファイル」はローカルネットワーク上でフォルダーやファイルを共有する仕組みを提供しており、簡単に他のPCとフォルダーやファイルをやりとりできます。
  • Linux Mint その222 - Linux Mint 21.2の新機能と変更点
    Linux Mint 21.2の新機能と変更点 リリースノートから「Linux Mint 21.2」の新機能と変更点を紹介します。
  • Ubuntu 22.04 その120 - UbuntuのブートローダーをBoot Repairで修復するには・Ubuntuが起動しないトラブルを解決
    UbuntuのブートローダーをBoot Repairで修復するには 「Boot Repair」はOSのブートローダーに起因するOSが起動しない問題を簡単に解決してくれるアプリです。
  • Ubuntuのバージョンと開発コードの対応表
    バージョンと開発コード 「Ubuntu」には各バージョンごとに開発コードが設定されます。
  • WSL その273 - WSL 2.0.0がリリースされました・WSL 2.0.0の新機能や変更点と数々の実験的な新機能の導入
    WSL 2.0.0の新機能と変更点 2023年9月18日にリリースされた「WSL 2.0.0」の新機能と変更点をピックアップします。
  • VirtualBox その125 - ゲストOSのUbuntuにLinux Guest Additionsをインストールするには
    ゲストOSのUbuntuにLinux Guest Additionsをインストールするには 仮想マシンにインストールしたゲストOSの「Ubuntu」に、「Linux Guest Additions」をインストールする方法です。
記事のピックアップ
オプション