8. GitFlow: Key Branches
Master Branch
The master
branch in GitFlow is reserved for production-ready code. It reflects the codebase's current state in production. Every time a release branch is finished, it gets merged into master
and tagged with a version number, ensuring that every commit in the master branch is a new release.
Key Points:
Represents the production-ready state.
Only updated by merging release or hotfix branches.
Every commit should be tagged with a version number.
Develop Branch
The develop
branch is the branch where all the development happens and where the latest changes reside. It's the branch from which feature branches are created and into which they are merged. When the code in the develop
branch reaches a stable point and is ready for release, a release branch is created.
Key Points:
Contains the latest delivered and approved features.
All feature branches branch off from and merge back into
develop
.Acts as an integration branch for features.
Feature Branches
Feature branches are used to develop new features or enhancements. They branch off from the develop
branch and must merge back into develop
once the feature is complete and tested.
Key Points:
Branch off from
develop
.Must merge back into
develop
.Naming convention often like:
feature/feature-name
orfeature/feature-description
.Allows parallel development of features without affecting the main codebase.
Release Branches
Release branches support the preparation for a new production release. They allow for last-minute dotting of i's and crossing t's: minor bug fixes, documentation updates, etc. Once the release is ready to ship, it gets merged into master
and tagged with a version number. It also needs to be merged back into develop
, which may have progressed since the release was initiated.
Key Points:
Branch off from
develop
.Must merge back into
master
anddevelop
.Naming convention often like:
release/version-number
orrelease/release-name
.Only bug fixes, documentation generation, and other release-oriented tasks should go in here.
Hotfix Branches
Hotfix branches are a quick way to fix critical production issues. They branch off from the master
branch and represent the quickest path to patching the production version. Once the fix is complete, the hotfix branch is merged into both master
(and tagged) and develop
to ensure the fix is applied to the current development state as well.
Key Points:
Branch off from
master
.Must merge back into both
master
anddevelop
.Naming convention often like:
hotfix/fix-description
orhotfix/version-number
.Used to quickly patch production releases.
In summary, GitFlow's branching model provides a structured way to manage different aspects of development, ensuring that the codebase remains organized, and releases are systematic and predictable.
Last updated