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.
Multiple Team Source is best when several busy teams are working on the same codebase or you have a long release process. This branching model is a derivative of GitFlow to provide each team with their own develop branch. Cross-team alignment occurs during regular releases. You can use semver git tags to label releases and trigger alpha, beta and production builds. To support multiple deployments, you can patch previous versions in their dedicated support branches.
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
- patterns:
- "*/develop"
- "*/release/*"
parameters:
required-reviews-count: 1
requires-codeowner-reviews: 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.