Python Git Workflows (Git Flow, Trunk-Based) & Semantic Tagging
Branching strategies govern team collaboration: Git Flow uses long-lived main, develop, feature, and release branches, while modern high-velocity CI/CD teams prefer Trunk-Based Development with short-lived feature branches. Semantic version tags (v1.0.0) mark permanent release milestones.
"Git Flow is like building a skyscraper floor by floor with formal inspection checkpoints; Trunk-Based Development is like modular pre-fabricated construction where small validated units are snapped in daily."
Deep Dive: How It Works
Annotated Tags (git tag -a v1.0.0 -m "Release"): Full objects storing tagger, date, and GPG signature in .git.
Lightweight Tags (git tag v1.0.0): Simple pointer bookmarks to a specific commit SHA without metadata.
Semantic Versioning: MAJOR.MINOR.PATCH (e.g. v2.1.4: breaking changes, new features, bug fixes).
Syntax Blueprint
git tag -a v1.0.0 -m "Release v1.0.0 - ZenCompiler Core" git tag -l git show v1.0.0
Create annotated release tag with release notes, list tags, and inspect tag object details.
Core Rules to Remember



Common Beginner Traps & How to Fix Them
Creating lightweight tags for production releases (git tag v1.0).Why it happens: Lightweight tags omit tagger identity and release descriptions.
How to fix: Always use git tag -a v1.0.0 -m "release notes".
Live Interactive Example
Hit Run Code to see it liveYour Turn: Micro Challenge
No pressure! Edit the starter code below and test your solution with instant feedback.
Create Annotated Semantic Tag
Create an annotated tag named "v2.0.0" with message "Major Release 2.0".
List tags with descriptions using "git tag -n1".
Finished reading and practicing?
Mark this lesson as completed to update your course progress.