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

Ubuntu Git その13 - ブランチとブランチの変更内容を結合するマージについて・ファーストフォワードについて

ブランチのマージ

  ここでは、ブランチのマージを紹介します。

  マージとは

    マージとは、ブランチで行った変更内容を、別のブランチに結合することです。

    例えば、リポジトリーにブランチが1つ存在するとします。
    そのブランチをブランチすると、リポジトリーにあるブランチが2つになります。

    それぞれのブランチは、お互い干渉せずに並行して変更内容をコミットしていくことができます。

 
    マージを行うと、あるブランチで行っていた変更内容を、別のブランチに結合することができます。
 

    上図は、「master」ブランチに「Ver2」ブランチをマージした状態です。

  ブランチ自身は結合されない

    結合されるのは、それぞれのブランチで行った変更内容だけです。
    ブランチ自身は結合されません。

    また、ブランチも削除されません。
    引き続き各ブランチで作業を継続することができます。

  マージの方法

    マージは、ブランチの状況に応じて、以下の2種類のいずれかの方法を使用します。

  • ファーストフォワード 
  • 3ウェイマージ

ファーストフォワードによるマージ例

  「ファーストフォワード」によるマージ例です。
  マージはブランチの変更内容の結合ですので、ブランチの例も混ぜてマージを紹介します。

  1.現在の状況

    「Git」を利用してアプリの開発を行っています。
    ブランチ名は「master」です。

    「master」ブランチからアプリをビルドし、ちょうどバージョン1.0のアプリをリリースしたところです。


  2.バージョン2用のブランチの作成

    バージョン1.0の開発はこれで終了し、次にバージョン2.0の開発に取り掛かります。

    ここで、バージョン2.0用のブランチを作成します。
    ブランチ名は「Ver2」です。


  3.ブランチの切り替え

    ユーザーはバージョン2.0用のブランチで作業を行うため、作業対象のブランチを「master」から「Ver2」に切り替えます。


  4.ファイルの編集とコミット

    ユーザーはファイルの編集を行い、区切りの良い作業を終えたところでコミットを行います。


  5.緊急性のある不具合

    ここでバージョン1.0にセキュリティーの脆弱性が見つかり、最優先で不具合の対応を行う必要がでてきたとします。

    ユーザーは、作業対象のブランチを「Ver2」から「master」に切り替えます。


  6.不具合対応用のブランチの作成

    不具合修正版のリリースは、不具合が本当に解消されているかテストを行ってからリリースする必要があります。

    いきなり「master」ブランチに修正したファイルをコミットする方法は、良い方法ではありません。
    特に他のユーザーとリポジトリーを共有している場合、混乱の原因になります。

    まず、不具合対応用のブランチを「master」から作成します。
    作成するブランチの名称は、「BugFix」です。


  7.ブランチの切り替え

    ユーザーは不具合修正用のブランチで作業を行うため、作業対象のブランチを「master」から「BugFix」に切り替えます。


  8.不具合の修正

    不具合の修正を行い、コミットします。
    「BugFix」ブランチからアプリをビルドし、不具合が解消されているか確認を行います。


  9.ブランチの切り替え

    アプリのテストに問題がなければ、「master」ブランチに「BugFix」ブランチをマージします。
    まず、作業対象のブランチを「BugFix」から「master」に切り替えます。


  10.ブランチのマージ(ファーストフォワードマージ)

    「master」ブランチに「BugFix」ブランチをマージします。

    このマージでは、「master」ブランチのブランチヘッドを、「BugFix」ブランチのブランチヘッドまで進めます。 
    これは「Commit3」の直線上に「Commit5」があり、ブランチヘッドの移動だけでマージが完了するためです。


    これで不具合修正の作業は完了です。
    「master」ブランチからアプリをビルドし、バージョン1.1のアプリをリリースします。

    この方法によるブランチのマージは、ブランチヘッドの移動だけでマージが完了するため「ファーストフォワード(Fast Forward)」と呼ばれます。

  11.ブランチの削除

    「BugFix」ブランチは、「5.緊急性のある不具合」対応用に作成したブランチです。
    不具合の対応が完了し、「BugFix」ブランチは役割を果たしました。

    もう「BugFix」ブランチは不必要なので「BugFix」ブランチを削除します。


    もしまた別の不具合対応が必要になったら、「master」ブランチから新しいブランチを作成し、そのブランチで同様の作業を行います。

  12.ブランチの切り替え

    ユーザーは、元々行っていたバージョン2.0開発の作業に戻るため、作業対象のブランチを「master」から「Ver2」に切り替えます。


  13.作業の続行

    これでバージョン2.0開発の作業を続行できます。


    ただし不具合の修正(Commit5)は、「Ver2」ブランチに盛り込まれていません。
    不具合の修正(Commit5)を「Ver2」ブランチに盛りこみたければ、「master」ブランチと「Ver2」ブランチをマージする必要があります。

     この状態でバージョン2.0開発の作業が完了し、「master」ブランチと「Ver2」ブランチをマージする例は、「3ウェイマージ」を参考にしてください。


Git
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 26.04 その68 - Ubuntu 26.04.1 LTS がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.04.1 LTS リリース 2026年8月27日、Ubuntu 26.04.1 LTS がリリースされました。
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Linux その426 - GNOME 向けアプリとアップデートの紹介・AI アシスタントアプリやメールスイートなど
    GNOME 向けアプリとアップデートの紹介 GNOME 向けアプリとアップデートの紹介です。
  • Linux その429 - GNOME 向けアプリとアップデートの紹介・ RSS リーダーのインポート機能や映画マトリックスのデスクトップ効果など
    GNOME 向けアプリとアップデートの紹介 GNOME 向けアプリとアップデートの紹介です。
  • Ubuntu 18.04 その195 - PolicyKitにクラッシュや権限の昇格など複数の脆弱性・今すぐアップデートを
    PolicyKitの脆弱性 2018年7月16日、クラッシュや権限の昇格など複数の脆弱性に対応した「PolicyKit」がリリースされました。
  • Ubuntu 26.10 その24 - Ubuntu 26.10 の公式壁紙と壁紙コンペの結果発表
    Ubuntu 26.10 の公式壁紙と壁紙コンペの結果発表 Ubuntu 26.10 の公式壁紙と壁紙コンペの結果が発表されました。
  • Linux その428 - KDE Plasma で実装予定の新機能や改善・マウスの中央ボタンの機能改善やリモートデスクトップの改善など
    KDE Plasma で実装予定の新機能や改善 KDE Plasma で実装予定の新機能や改善を紹介します。
  • Linux その425 - KDE Plasma で実装予定の新機能や改善・Union テーマシステムの改良やクリップボードマネージャーの改善など
    KDE Plasma で実装予定の新機能や改善 KDE Plasma で実装予定の新機能や改善を紹介します。
  • Linux Mint その292 - Linux kernel 7.0 採用の Linux Mint 22.3 リリース・システム管理ツールにカーネル管理機能追加など
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Ubuntu 26.10 その23 - x86-64-v3 に対応したデイリービルドのディスクイメージが利用可能に
    x86-64-v3 に対応したデイリービルドのディスクイメージが利用可能に x86-64-v3 に対応した Ubuntu Desktop 26.10 のデイリービルドのディスクイメージが利用可能になりました。
記事のピックアップ
オプション