トランクベース開発

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

GitDevOps

トランクベース開発とは

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

Git Flow vs トランクベース

Git Flow とトランクベースの違いを以下にまとめる。

観点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マージ後に自動デプロイ
フィーチャーフラグ未完成の機能を隠す
コードレビュー品質を維持
小さな変更コンフリクトを最小化

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

この記事は役に立ちましたか?

関連用語

関連する記事