Module 11: Designing Team Git Workflows

Trunk-Based Development, Git Flow, and Release Branching

Trunk-Based Development, Git Flow, and Release Branching

Module: Module 11: Designing Team Git Workflows

Workflow models are organizational tools. Trunk-based development, Git Flow, and release-branch models each fit different release cadence, team size, compliance, and testing realities.

Trunk-based development keeps main close to releasable and favors short-lived branches, strong CI, feature flags, and frequent integration. Git Flow uses long-lived develop and release branches, which can fit packaged releases but may slow integration. Simple release branching keeps main active while maintaining supported production lines.

Do not pick a workflow because it sounds advanced. Pick it because it matches deployment frequency, test confidence, review culture, and rollback needs. A team deploying daily with strong CI usually wants shorter branches than a team shipping certified releases quarterly.

Command Walkthrough

git log --first-parent --oneline main
git branch -r
git tag --sort=-creatordate | head
git merge-base main release/1.0
Representative output
* d4e5f6a (HEAD -> main) Add focused change
* a1b2c3d Create project baseline

Hands-on Lab

Write a workflow recommendation for three teams: a web app deploying daily, an embedded firmware team shipping quarterly, and a library maintaining multiple supported versions.

What to Watch For

  • Long-lived branches accumulate painful integration debt.
  • Trunk-based development without strong tests and feature flags can be chaotic.
  • Workflow rules should be revisited as team size and release cadence change.

Completion Check

You should be able to explain what each command changed, inspect the resulting history, and describe how you would undo or recover from the operation before using it in a shared repository.