Gitマージ戦略:Fast-forward、No-ff、Squash

Gitマージ戦略を理解:fast-forward、--no-ff、--squash。各戦略をいつ使用するか、コミット履歴にどう影響するかを学びます。

Branching

詳細な説明

Gitマージ戦略

Gitはブランチをマージする複数の方法を提供し、それぞれ異なるコミット履歴の形を生成します。

Fast-forwardマージ(デフォルト)

フィーチャーブランチ作成後にターゲットブランチに新しいコミットがない場合、Gitは単にポインタを前に進めます。

No Fast-forward (--no-ff)

fast-forwardが可能でもマージコミットを強制します。

git merge --no-ff feature/login

Squashマージ

フィーチャーブランチのすべてのコミットをターゲットブランチの単一コミットに結合します。

git merge --squash feature/login
git commit -m "feat: ログイン機能を追加"

比較

戦略 マージコミット ブランチ履歴 リニアリティ
Fast-forward なし 失われる リニア
--no-ff あり 保存される ブランチ型
--squash なし(手動) 失われる リニア

ユースケース

マージ戦略の選択はプロジェクト履歴の可読性に影響するチームレベルの決定です。fast-forwardはソロプロジェクトに適し、--no-ffはブランチ境界を見たいチームに人気があり、squashマージはクリーンなmainブランチを求めるオープンソースプロジェクトの標準です。

試してみる — Git Command Reference & Cheat Sheet

フルツールを開く