投稿

[GitHub 100日チャレンジ] Day 46 - Fast-Forward Merge

Fast-Forward Mergeの仕組み、mainが分岐していないときに履歴が直線で進む理由を説明します。

[GitHub 100日チャレンジ] Day 46 - Fast-Forward Merge

Fast-Forward Mergeとは

Fast-Forward Mergeは、取り込み先ブランチが分岐していないときに、ポインタを前へ進めるだけで完了するマージです。

1
2
3
4
5
main:    A---B
feature:     \---C---D

merge後:
main:    A---B---C---D

実行例

先にmainからfeature/readme-updateを作り、そのブランチだけで変更をコミットした状態を用意します。分岐後にmainへ別のコミットを追加していないことが、この例で確かめたい条件です。

1
2
git switch main
git merge feature/readme-update

main側に別の変更がなければ、履歴が直線のまま進みます。

特徴

  • 履歴がシンプル
  • マージコミットが作られない
  • 小さな個人作業では分かりやすい

今日のゴール

実行前後のgit log --oneline --graph --allを比べ、新しいマージコミットを増やさずmainが作業ブランチの先端へ進んだか確認しましょう。

Fast-Forward Mergeが「履歴を前に進めるだけのマージ」だと理解しましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。