Git Flow と Trunk-Based の選択肢 Choosing between Git Flow and Trunk-Based Development for effective CI/CD workflows, highlighting their strengths and weaknesses. とTrunk-Based Development (TBD) は、CI/CD ワークフローに大きな影響を与えることができます。ここでは、簡単な概要を示します。
- Git Flow: 式の管理された環境に最適です。
main,develop,feature,release、hotfix、 - Trunk-Based Development: 主要ブランチに焦点を当て、短期間の機能ブランチを使用します。
小規模チーム、高速リリース、強力な自動テストに適しています。
| Quick Comparison: | Aspect | Git Flow |
|---|---|---|
| Trunk-Based Development | 長期ブランチ | 短期ブランチ |
| リリースサイクル | スケジュールされたリリース | 継続的デプロイ |
| チームサイズ | 大規模チーム | 中小規模チーム |
| テスト | サイクル終了時のテスト | 自動テスト |
| デプロイリスク | ステージングリリースとともに下がる | 頻繁な更新とともに上がる |
| ロールバック | 遅い | 速い |
主なポイント: Git Flow を使用して構造化された、より遅いワークフローと、TBD を使用してスピードと柔軟性を実現する。両方とも、成功するには堅固な CI/CD Pipelines が必要です。
29 - GitFlow と Trunk-Based Development: …
Git Flow ワークフロー基本

Git Flowは、開発を5つのブランチタイプで組織します: __CAPGO_KEEP_0__, __CAPGO_KEEP_0__, __CAPGO_KEEP_0__, __CAPGO_KEEP_0____CAPGO_KEEP_0__ 、そして__CAPGO_KEEP_0__
。 この構造は、リリースと並行開発を効果的に管理するのに役立ちます。
| Git Flowブランチ構造 | ブランチタイプ | 目的 |
|---|---|---|
| メイン | codeの本番用を保持する | N/A |
| 開発 | __CAPGO_KEEP_0__に機能を統合する;機能ブランチのベースとして機能する | N/A |
| 機能 | __CAPGO_KEEP_0__の個々の機能を構築するために使用する;開発から作成 | 開発 |
| リリース | __CAPGO_KEEP_0__の最終テストとバージョニングに準備する;開発から作成 | メイン & 開発 |
| 緊急修正 | 生産問題を迅速に修正する; main から作成 | main & develop |
Git Flow の利点
- 複数の機能を同時に開発できるため、競合が生じることなく開発が可能
- リリースブランチは、最終テストとバージョン準備のための専用スペースを提供し、 develop ブランチは、継続的な作業のために開かれている
- 緊急修正 ブランチは、生産問題を迅速に修正するために、他の開発タスクを中断することなく、簡単にアドレスできる
Git Flow の欠点
- ブランチ管理の複雑さ: __CAPGO_KEEP_0__
- 複数のアクティブなブランチを管理すると、統合が困難になる可能性があります。遅れたデプロイ
- : 正式なリリースプロセスでは、よりシンプルなワークフローと比較して、デプロイメントが遅くなる可能性があります。増加したメンテナンス
: 各ブランチには独自のパイプライン構成が必要になり、メンテナンスの負担が増加します。
このワークフローは、厳格なバージョン管理、複数のリリーストラック、規制の遵守が必要なプロジェクトに最適です。次に、トランクベースの開発のストリーミングされたアプローチと比較する方法について詳しく説明します。
トランクベース開発の基本
トランクベース開発 (TBD) は、主に 1 つのメイン ブランチ、よく「トランク」または「メイン」と呼ばれるものに焦点を当てています。このアプローチは、DevOps の実践と継続的な統合に近いです。
トランクベースブランチ構造
| 一般的な TBD ワークフローでは、次のブランチタイプが見つかります: | ブランチタイプ | 生存期間 |
|---|---|---|
| メイン/トランク | 生産用codeを備えた中心ブランチ | 永久 |
| 機能ブランチ | 個々の変更用の短期間のブランチ | 短期間 |
| リリースブランチ | リリース前に最終調整用 | 短期間 |
開発者は、メインブランチに小さな、段階的な変更を定期的にマージすることが多い。これは、継続的なテストを促進し、迅速なコンフリクト解決を支援する。
トランクベースの利点
TBDはCI/CDとDevOpsを取り巻くチームに多くの利点をもたらします:
- マージコンフリクトが少なくなる: 連続したマージにより、コンフリクトを管理することができる。
- 早いフィードバック: 自動ビルドは毎回のマージで実行され、早期にバグを検出する。
- シンプルなパイプライン: 単一のブランチにより、CI/CDのセットアップの複雑さが減る。
- よりよいチームの協力: 共有のトランクにより、全員が一致する。
この構造は、Git Flowとの比較を次のセクションで行うための、流れの高速化をもたらす。
トランクベースの制限
TBDには強みがあるが、チームが対処する必要がある制限もある:
| 課題 | 影響 | 対策 |
|---|---|---|
| Code 安定性 | 主ブランチに影響を与える変更のリスク | 強力な自動テストを使用する |
| チームの調整 | 重複した作業が混乱を招く | 機能フラグと頻繁な小さなコミットに頼る |
| 学習曲線 | 長期間のブランチから移行する | トレーニングを提供し、段階的に導入する |
| 拡大問題 | 大規模チームでは頻繁なマージがチームを混乱させる | codeの徹底的なレビューを強制する |
TBDを成功的に採用するには、チーム内でオープンなコミュニケーションと自動テストが必要です。
Git FlowとTrunk-Basedの直接比較
Git FlowとTrunk-Based開発の主な違いを比較検討してみましょう。
機能比較表
| アスペクト | Git Flow | Trunk-Based開発 |
|---|---|---|
| ブランチ複雑さ | 複数の長期間のブランチ | 単一のメインブランチと短期間のブランチ |
| リリースサイクル | スケジュールされたリリース | 継続的デプロイ |
| チームサイズ | 大規模チーム向けに適しています | 小規模チーム向けに適しています |
| Code レビュー プロセス | ブランチマージ時に正式なレビュー | 小規模で頻繁な変更の継続的なレビュー |
| テスト要件 | サイクル終了時のテストに重点を置く | __CAPGO_KEEP_0__ |
| 学習曲線 | __CAPGO_KEEP_1__ | 複数ブランチにより、より複雑 |
| よりシンプルなワークフロー、しかし強力なテストが必要 | __CAPGO_KEEP_2__ | 段階的なリリースによりリスクが低下 |
| __CAPGO_KEEP_3__ | 頻繁な更新によりリスクが高まります | __CAPGO_KEEP_4__ |
より速い復旧機能
__CAPGO_KEEP_5__、どのワークフローを使用するか __CAPGO_KEEP_0__は、構造化されたバージョン管理されたリリースが必要な大規模なプロジェクト向けに最適です。複数のサポートバージョンを管理するチームや、正式なQAまたはコンプライアンス要件を持つプロジェクトに適しています。
トランクベース開発 __CAPGO_KEEP_0__は、スピードと柔軟性を優先するチームやプロジェクトに最適です。以下のようなケースに適しています。
- SaaSプラットフォーム向けの迅速な更新
- 強力なCI/CDパイプラインを持つチーム
- 自動テストによって裏付けられたプロジェクト
- 継続的デプロイワークフローまたは頻繁なリリース
- モバイルアプリプロジェクト向けの定期的な更新
いくつかのチームは、トランクベース開発をコアサービスに使用し、正式なリリーストラックを持つプロジェクトにGit Flowを使用します。
次のステップ:どちらのアプローチでもCI/CDパイプラインを設定する方法
CI/CDパイプライン設定
Git Flow CI/CD設定
- 開発ブランチパイプライン: 単体テスト、統合テスト、code 品質チェック、ビルド検証、開発環境へのデプロイを実行します。
- リリースブランチパイプライン: フルテストスイートの実行、セキュリティスキャン、リリース候補のビルド、ステージング環境へのデプロイを実行します。
- メインブランチパイプライン: バリデーションテストの実行、バージョニングの処理、プロダクションビルドの作成、プロダクションへのデプロイ、リリースのタグ付けを実行します。
トランクベースCI/CDセットアップ
- : 速い単体テスト、__CAPGO_KEEP_0__ スタイルチェック、ビルド検証、プレビュー環境へのデプロイを実行します。: Focuses on quick unit tests, code style checks, build verification, and deployment to a preview environment.
- : 組み込み自動テスト、セキュリティスキャン、プロダクションビルドの作成、進歩的デプロイ、自動ロールバック機能を実行します。__CAPGO_KEEP_0__
Capgo CI/CD統合

Capgo を使用して、CI/CD設定のいずれかにライブオーバー・ザ・エアアップデートを追加することができます。
Capgo は GitHub アクション, GitLab CI, Jenkins Git Flow と Trunk-Based Pipelines の両方でライブアップデート、ステージドロールアウト、インスタントロールバックを有効にすることができます。 Apple と Google の要件を満たし、クラウドと自社ホストの両方の展開に対応しています。 [1].
概要と推奨事項
チームのサイズとCI/CDの成熟度レベルに基づいて、以下の表に基づいてワークフローを選択してください。
| シナリオ | Git Flow | トランクベース |
|---|---|---|
| チームサイズ | 50人以上の開発者 | 50人未満の開発者 |
| リリースサイクル | 週1回または月1回 | 毎日または複数回 |
| テスト & QA | 伝統的なQAサイクル | 自動テストに焦点を当てる |
| デプロイモデル | Multi-version, traditional | Cloud-native, containerized |
| リスク耐容度 | 保守的な規制されたセットアップ | 進歩的な迅速なフィードバック |
- 小規模チームでTrunk-Based Developmentを開始し、次に大規模グループに拡大する。CI/CD Pipeliningが完全に自動化されるまで移行する前に確認する。
- 一貫したcodeレビューを維持し、両方のワークフローで機能フラグを使用する。選択したワークフローに基づいてPipelineの構成を統合する。
チームによっては、これらのアプローチを組み合わせるかもしれません - メジャーリリース用にGit Flowを使用し、機能の提供にTrunk-Based Developmentを活用する。どのパスを選択しても、CI/CDを適切に統合し、テストを自動化し、チームを同じページに保つことが成功の鍵です。
Git Flow vs Trunk-Based DevelopmentからCI/CD
あなたが Git Flow vs Trunk-Based Development CI/CDの自動化を計画するために使用している場合、接続する。 Capgo CI/CD Capgo CI/CDの製品ワークフローについて Capgo Native Builds Capgo Native Buildsの製品ワークフローについて Capgo Integrations Capgo Integrationsの製品ワークフローについて CI/CD統合 CI/CD統合の実装詳細について GitHub Actions統合 GitHub Actions統合の実装詳細について