Version control records every change with author, time, and message. Git dominates; the branching strategy (trunk-based, GitHub Flow, GitFlow) follows the team and release cadence.
11.4 Version Control Systems
Tool comparison
Tool
Model
Notes
Git
Distributed
Dominant; GitHub / GitLab / Bitbucket
Mercurial
Distributed
Similar model; Meta + a few large orgs
Subversion
Centralised
Legacy enterprises
Perforce
Centralised
Large binary asset workflows
Branching strategies
Strategy
Branches
Best for
Trunk-based
Main + short-lived branches
High-frequency CI/CD
GitHub Flow
Main + feature via PR
Most teams
GitLab Flow
Adds env branches (staging, prod)
Heavier release process
GitFlow
develop + release + hotfix
Versioned products
Daily Git workflow
Step
Command / action
1
git checkout -b feat/new-thing
2
Edit + commit with clear messages
3
git push -u origin feat/new-thing
4
Open PR; CI runs; review
5
Address comments; rebase if needed
6
Merge (squash or rebase)
7
Delete branch
Commit message convention (Conventional Commits)
Prefix
When
feat:
New feature
fix:
Bug fix
docs:
Documentation only
refactor:
Code change without behaviour change
perf:
Performance improvement
test:
Adding or fixing tests
chore:
Tooling, deps
Repository hosting
Host
Strength
GitHub
Largest community; Actions for CI
GitLab
Built-in CI + registry + DR
Bitbucket
Atlassian; integrates with Jira
Azure Repos
Microsoft stack; AD integration
Governance basics
Protected branches; require PR review.
Signed commits where compliance demands.
Secret scanning enabled on every repo.
Branch retention policy; archive stale repos.
Mentor’s tip: Git + trunk-based + short branches + PR review = the modern default. Branch protection, signed commits, and secret scanning are governance. Long-running branches are technical debt with compounding interest.
Discussion
Loading…