Git Flow と Trunk-Based Development (TBD) を選択することは、CI/CD ワークフローに大きな影響を与えることがあります。ここでは、簡単な概要を紹介します。 Git Flow Trunk-Based Development
- と: 最適なのは、バージョン管理された環境で構造化されたものです。複数のブランチを使用します。例えば、master、develop、feature/など。大量のチーム、遅いリリースサイクル、厳密なQAプロセス向けです。
main,develop,feature,release, andhotfix. 大規模チーム、遅いリリースサイクル、厳密なQAプロセス向けです。 - Trunk-Based Development: 主要ブランチに焦点を当て、短期間の機能ブランチを使用します。小規模チーム、高速リリース、強力な自動テスト向けです。
Quick Comparison:
| Aspect | Git Flow | Trunk-Based Development |
|---|---|---|
| Branch Complexity | 複数の長期間のブランチ | 単一のブランチ、短期間のブランチ |
| リリースサイクル | スケジュールされたリリース | 継続的デプロイ |
| チームサイズ | 大規模チーム | 小規模から中規模のチーム |
| テスト | サイクル終了時のテスト | 自動テスト |
| デプロイリスク | ステージドリリースで低く | 頻繁な更新で高く |
| ロールバック | 遅い | 速い |
主なポイントGit Flow を使用して、構造化された、遅いワークフローと、TBD を使用して、スピードと柔軟性を実現します。両方とも、CI/CD Pipelines が成功するために必要です。
29 - GitFlow とトランクベース開発: …
Git Flow ワークフロー基本

Git Flow は、5 つのブランチタイプを使用して開発を組織化します: メイン, 開発, 機能, リリース, と ホットフィックス. この構造は、リリースと並行開発を効果的に管理するのに役立ちます。
Git Flow ブランチ構造
| ブランチの種類 | 目的 | マージ先 |
|---|---|---|
| メイン | 生産用の code を保持する | N/A |
| 開発 | 機能を統合する;機能ブランチの基礎となる | N/A |
| 機能 | 個々の機能を構築するために使用;developから作成 | develop |
| リリース | 最終テストとバージョニングの準備;developから作成 | main & develop |
| Hotfix | 生産問題を迅速に修正する;mainから作成 | main & develop |
Git Flowの利点
- 複数の機能を同時に開発できるため、コンフリクトが発生する心配はありません。
- リリースブランチは、最終テストとバージョン準備のための専用スペースを提供し、 develop ブランチは、進行中の作業のために開放されます。
- Hotfix ブランチは、生産問題を迅速に解決するために、他の開発タスクを中断することなく簡単に実行できます。
Git Flowの欠点
- 複数のアクティブなブランチを管理することは、マージがより困難になる可能性があります。Slower Deployment
- Slower Deployment: formal release process may slow down deployments compared to simpler workflows.
- Increased Maintenance: Each branch requires its own pipeline configuration, adding to the maintenance workload.
This workflow works best for projects that need strict version control, multiple release tracks, or compliance with regulations. Next, we’ll explore how this compares to the streamlined approach of trunk-based development.
Trunk-Based Development Basics
Trunk-Based Development (TBD) revolves around a single main branch, often called the trunk or main. This approach aligns closely with DevOps practices and continuous integration.
Trunk-Based Branch Structure
In a typical TBD workflow, you’ll encounter these branch types:
| Branch Type | 目的 | 期間 |
|---|---|---|
| Main/Trunk | codeの中心ブランチ | 保護されたブランチ |
| 機能ブランチ | 個々の変更用の短期間のブランチ | 短期間の |
| リリースブランチ | リリース直前に最終調整用 | 短期間の |
開発者は、メインブランチに小さな、段階的な変更を定期的にマージすることが多い。これは、CI/CDとDevOpsを取り入れているチームにとって、継続的なテストと迅速な対処が可能になる。
トランクベースの利点
TBDは、CI/CDとDevOpsを取り入れているチームにとって、以下の利点をもたらす。
- マージコンフリクトの数が少ない: __CAPGO_KEEP_0__
- 迅速なフィードバック: 自動ビルドは毎回マージ時に実行され、早期にバグを検出します。
- シンプルなパイプライン: 単一のブランチはCI/CDのセットアップの複雑さを軽減します。
- チームの協力: 共有のトランクにより、全員が一致することを保証します。
この構造は、Git Flowとの比較のための基盤を整える、ストリーミングされたワークフローを創出します。
トランクベースの制限
: TBDには強みがありますが、チームはこれらの課題に対処する必要があります。
| 課題 | 影響 | How to Address |
|---|---|---|
| Code | Risk of breaking changes affecting main | Use strong automated testing |
| Team Coordination | Overlapping work can cause disruptions | Rely on feature flags and frequent, small commits |
| Learning Curve | Transitioning from long-lived branches | Offer training and phase in gradually |
| Scaling Issues | Frequent merges can overwhelm large teams | codeを徹底する |
TBDの成功には、チーム内での自動テストとオープンなコミュニケーションが必要です。
Git Flow vs. Trunk-Based: 直接比較
Git FlowとTrunk-Based Developmentの主な違いは次のとおりです。
機能比較表
| 要素 | Git Flow | Trunk-Based Development |
|---|---|---|
| Branch Complexity | 複数の長期ブランチ | 短期間のブランチを持つ単一のメインブランチ |
| リリースサイクル | 定期リリース | 継続的なデプロイ |
| チームサイズ | 大規模チームでよく機能します | 小規模チームに適しています |
| Code レビュー プロセス | ブランチマージ時の正式なレビュー | 小規模で頻繁な変更の継続的なレビュー |
| テスト要件 | サイクル終了時のテストに重点を置く | 自動テストに大きく依存する |
| 学習曲線 | 複数のブランチにより複雑 | シンプルなワークフローですが、強力なテストが必要 |
| デプロイリスク | 段階的なリリースによりリスクが低下 | 頻繁な更新によりリスクが高まります |
| 復旧時間 | ロールバックプロセスが遅くなります | 迅速な復旧機能 |
どのワークフローを使用するか
Git Flow __CAPGO_KEEP_0__は、企業レベルのプロジェクトに適しています。__CAPGO_KEEP_0__は、バージョン管理されたリリースが必要なプロジェクトや、複数のサポートバージョンを管理するチーム、または正式なQAまたは規制要件があるプロジェクトに適しています。
トランクベース開発 チームやプロジェクトがスピードと柔軟性を優先する場合、例えば:
- SaaSプラットフォームが迅速な更新が必要な場合
- CI/CD Pipelinesが強力なチーム
- 信頼できる自動テストによって裏付けられたプロジェクト
- 継続的デプロイワークフローまたは頻繁なリリース
- モバイルアプリプロジェクトが定期的な更新が必要な場合
チームは、両方の方法を組み合わせて使用することもあります:コアサービス用にTrunk-Based Developmentを使用し、正式なリリーストラックを持つプロジェクト用にGit Flowを使用します。
次のステップ:どちらのアプローチでもCI/CD Pipelinesを設定する方法
CI/CD Pipelineの設定
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 __CAPGO_KEEP_0__ライブアップデートダッシュボードインターフェース

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