トランクベース開発

全開発者が 1 つのメインブランチに頻繁にコミットし、長寿命ブランチを避ける開発手法

GitDevOps

トランクベース開発とは

トランクベース開発 (Trunk-Based Development) は、全開発者が 1 つのメインブランチ (trunk/main) に頻繁にコミットし、長寿命のフィーチャーブランチを避ける開発手法である。DORA の研究で、高パフォーマンスチームの特徴として報告されている。

Git Flow vs トランクベース

観点 Git Flow トランクベース
ブランチ寿命 数日〜数週間 数時間〜1 日
マージ頻度 低い 高い (1 日複数回)
マージコンフリクト 多い 少ない
リリース頻度 低い 高い
CI/CD との相性 高い

進め方

1. main から短命ブランチを作成
2. 小さな変更をコミット (数時間以内)
3. PR を作成、レビュー
4. main にマージ
5. CI/CD で自動デプロイ

❌ 避けるべき: feature/big-refactor (2 週間)
✅ 推奨: fix/validation-error (2 時間)

小さな変更の原則

1 つの PR には 1 つの変更だけを含め、差分は 200 行以内に抑える。大きな PR はレビューの質が下がるためだ。リファクタリングと機能追加は別の PR に分け、変更の意図を明確にする。各 PR にテストを含めて、PR 単体で検証可能にする。

トランクベース開発の前提条件

前提 理由
自動テスト main が常にデプロイ可能であることを保証
CI/CD マージ後に自動デプロイ
フィーチャーフラグ 未完成の機能を隠す
コードレビュー 品質を維持
小さな変更 コンフリクトを最小化

トランクベース開発の関連書籍も参考になる。

関連用語