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

ローカルブランチをチェックアウトし、ワーキングディレクトリーとローカルブランチをマージする

  「ローカルブランチ」を「チェックアウト」し、「ワーキングディレクトリー」と「ローカルブランチ」をマージします。
    マージは3ウェイマージで行われます。

  通常マージというと、ブランチとブランチのマージを想像するかと思います。
  この方法を利用すると、「ワーキングディレクトリー」と「チェックアウト」する「ローカルブランチ」をマージすることができます。

  マージ元のファイルについて

    マージ元のファイルは、「ローカルブランチ」を「チェックアウト」する前に「ワーキングディレクトリー」内に存在するファイル、かつ、変更されているファイルが対象になります。

    従ってクリーンな状態で「チェックアウト」を行っても、マージは行われません。

  マージコミットは作成されない

    ブランチ同士をマージした際、「マージコンフリクト」が発生しなければ、自動的にコミットが行われます。(マージコミット)

    しかしこの方法ではファイルのマージは行われますが、コミットは行われません。
    「マージコンフリクト」が発生した状況と似たような状況になります。
    自分でコミット作業を行う必要があります。

  1.ブランチの確認

    ここでは例として、「master」ブランチで変更したファイルと「sub」ローカルブランチをマージします。
    ブランチの一覧を表示すると、以下のようになっています。


    「master」ローカルブランチと「sub」ローカルブランチがあることが分かります。
    また、「*」マークが付いている「master」ローカルブランチが、現在のブランチであることが分かります。


    従って「HEAD」は「master」ローカルブランチを指しています。

  2.masterローカルブランチの状態

     「master」ローカルブランチの状態を確認すると、 「ワーキングディレクトリー」内で変更のあったファイルの一覧が表示されます。


    「main.txt」ファイルが変更されています。
    このファイルはコミットされていません。

    変更されたファイルがマージ元のファイルになります。
    また、「ワーキングディレクトリー」内に変更されたファイルがあるため、「ワーキングディレクトリー」はダーティーな状態です。

  3.masterローカルブランチのワーキングディレクトリー

    「master」ローカルブランチの「ワーキングディレクトリー」は、以下のようになっています。


  4.subローカルブランチのワーキングディレクトリー

    マージ前の「sub」ローカルブランチの「ワーキングディレクトリー」は、以下のようになっています。


  5.コマンドの実行

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

ショートオプション ロングオプション
-m --merge

    「端末」から、以下のコマンドを実行します。
    コマンドの詳細は、「ローカルブランチをチェックアウトするコマンドの説明」を参考にしてください。
    ポイントは、赤字の箇所です。

git checkout --merge sub


  6.コマンドの実行結果

    以下のようにメッセージが表示され、「sub」ローカルブランチが「チェックアウト」されます。
    また、マージを行ったファイルの一覧が表示されます。


  7.ブランチの確認

    ブランチを確認すると、以下のように「sub」ローカルブランチに「*」マークが付いており、現在のブランチが「sub」ローカルブランチであることが分かります。


    「sub」ブランチを「1.」の状態と比較すると、コミットが行われていないことが分かります。


    必要に応じて、自分でコミット作業を行います。

  8.subローカルブランチのワーキングディレクトリー

    マージ後の「sub」ローカルブランチの「ワーキングディレクトリー」は、以下のようになっています。


    元々「sub」ローカルブランチに「main.txt」ファイルは存在していなかったため、今回のマージは、「main.txt」ファイルの追加で完了しています。
   

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