Multiple Team Source
A source code setup for repos with several teams making changes in parallel. Uses a derivative of GitFlow to provide flexible releases with each team managing their own develop branch.
-
Protected Code
- All changes are reviewed by codeowners and involve more than 1 person. Protection rules can be adjusted to your requirements.
-
SemVer Support
- SemVer git tags label alpha, beta and production builds. Multiple application versions can be supported independently.
-
Team Branch
- Each team has an independent area under their direct control to integrate and test changes.
-
Flexible Releases
- Changes can be tested and released as a batch if desired while maintaining the ability to release a hotfix at any time.
Best when several busy teams are working on the same codebase. Branching model is a derivative of GitFlow to provide each team with their own develop branch. Cross-team alignment occurs during regular releases. SemVer git tags used to label releases and trigger alpha, beta and production builds. To support multiple deployments, previous versions can continue to be patched through the use of support branches.
- Protected Code
- SemVer Support
- Team Branch
- Flexible Releases
Recommended branching model patterns explained in under 7 minutes!
Quick Start
Create a team develop branch, e.g. for a team named ppb
:
git checkout main
git checkout -b ppb/develop
git push -u origin ppb/develop
Start using the branching model through git flutter
shortcuts. Install this helper with:
curl -o- https://innersource.flutter.com/git-flutter/install.sh | bash
View repository status:
git flutter status
Ready to try it?
The sandbox-mt repository is a sandbox area for you to use.
Create a feature:
git flutter feature "my feature name"
To push your work and open a PR:
git flutter push -w
Create a release once the feature is merged to develop:
git flutter release "name or version"
Tag alpha (develop branch), beta (release branch) or production build (main branch):
git flutter tag
Quick Setup
Create a team develop branch for each team, e.g. to create a ppb
team branch:
git checkout main
git checkout -b ppb/develop
git push -u origin ppb/develop
If you are configuring a completely new repository use the full setup guide. However for most you just need to update your branch protections in your Codebase Governor config file:
branch-protections:
- patterns:
- "main"
- "master"
- "support/*"
parameters:
required-reviews-count: 2
requires-codeowner-reviews: true
requires-status-checks: true
- patterns:
- "*/develop"
- "*/release/*"
parameters:
required-reviews-count: 1
requires-codeowner-reviews: true
requires-status-checks: true
allow-admin-bypass: true
allow-stale-reviews: true
allow-stale-branch-merge: true
allows-deletions: true
If you are using tags to trigger builds use the GitHub web interface to add a tag protection rule for the v*
pattern (Settings > Tags > New Rule).
Learn More
- Read a full setup guide.
- Understand the branching model.
- Use the
git-flutter
CLI to help you. - Read about real-life migration and adoption examples.