【まーじ】

マージ(Git) とは?

💡 作業ラインを「本流に合流させる操作」
📌 このページのポイント
マージ ― ブランチの統合 main M feature 変更A 変更B 変更C Fast-Forward 直線的な統合 3-Way Merge マージコミット作成 Conflict 競合時は手動解決
マージのイメージ
ひよこ ひよこ

マージって何をしてるの?

ペンギン先生 ペンギン先生

ブランチAとブランチBの変更を合体させることだよ。たとえばmainから分岐して機能を作ったブランチを、mainに「マージ」して取り込む。

ひよこ ひよこ

コンフリクトって怖そうだけど?

ペンギン先生 ペンギン先生

同じ行を両方のブランチで違う内容に変えたときに起きる。Gitが「どっちが正しいか俺にはわからん!」って止まる状態。手動で正しい内容を選んで解決する必要がある。

ひよこ ひよこ

おもしろい!Fast-forwardマージって何?

ペンギン先生 ペンギン先生

本流(main)が分岐以来変更されてないとき、ブランチのコミットをそのままmainの先端に積み上げる方法。マージコミットが作られず履歴がスッキリする。逆に両方が進んでいたらマージコミットができる。

ひよこ ひよこ

rebaseって何が違うの?

ペンギン先生 ペンギン先生

これは少し上級。rebaseはブランチの「起点」を付け替えて履歴を一本の線にする方法。mergeは合流点(マージコミット)が残るから履歴が分岐して見える。rebaseは履歴が綺麗になるけど、共有ブランチでやると他の人の環境を壊すので注意が必要。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
マージって出てきたら「Gitブランチを統合する操作」と思えばだいたいOK!
📖 おまけ:英語の意味
「merge」 = 合流する、統合する
💬 高速道路の「合流」と同じ語。作業ラインを本流に流し込むイメージ
← 用語集にもどる