kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。

マージコミットを行わず、3ウェイマージを行う

  「マージコミット」を行わず、「3ウェイマージ」を行います。

  デフォルトでは、「3ウェイマージ」実行後に「マージコンフリクト」が発生しなければ、マージ結果を自動的にコミットします。

  この動作を抑制し、「3ウェイマージ」実行後に「マージコンフリクト」が発生しなくても「マージコミット」を行わないようにできます。

  1.ブランチの確認

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

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


  2.ブランチの状態

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


    見ての通り、この状態で「master」ブランチに「fix」ブランチをマージすると、「3ウェイマージ」によるマージになることが分かります。

  3.コマンドの実行

    コマンドのオプションは、以下のオプションを指定します。

オプション
--no-commit

    「端末」から、以下のコマンドを実行します。
    コマンドの詳細は、「ファイルのマージを行うコマンドの説明」を参考にしてください。

    ポイントは、赤字の箇所です。

git merge --no-commit --verbose fix


  4.マージ完了

    「3ウェイマージ」によるマージが行われます。
    ただし「マージコミット」を行わないため、マージ結果が自動的にコミットされることはありません。


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

    「ワーキングディレクトリー」の状態を確認すると、コミットを行っていないためマージが完了していないこと、及び、「マージコンフリクト」は発生していないことが分かります。


  6.ワーキングディレクトリーの中身

    「ワーキングディレクトリー」には、マージ済みのファイル群が配置されています。
    コミットを行う前に、ファイルを編集したり、ファイルの内容を確認できます。


  7.コミット

    特に問題なければ、自分コミットを行います。


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

    「ワーキングディレクトリー」の状態を確認すると、「クリーン」な状態であることが分かります。


  9.マージ後のブランチの確認

    マージ後のブランチを確認すると、以下のようになっています。

  
    「master」ブランチのブランチヘッドが指す「コミットオブジェクト」は、「マージコミット」で生成した「コミットオブジェクト」を指しています。

  10.マージ後のブランチの状態

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



関連コンテンツ
同一カテゴリーの記事
コメント
オプション