GIT
Branching Strategy
The project follows the Gitflow branching model for version control. This model provides a robust framework for managing larger projects with scheduled releases.
Our repository maintains the following primary branches:
main- Contains production-ready codedevelop- Main integration branch for ongoing developmentrelease- Used when preparing a new production releasefeature- Short-lived branches for new feature developmentfix- Short-lived branches for bug fixes
Feature Branch Guidelines
Create feature branches from
developBranch naming:
feature/descriptive-name(e.g.feature/add-cdc-support)Keep changes focused and atomic
Regularly sync with
developto minimize merge conflictsSubmit pull request to merge back into
developwhen complete
Fix Branch Guidelines
Create fix branches from
developfor non-critical bugsBranch naming:
fix/issue-description(e.g.fix/logging-format)Include issue reference in commit messages when applicable
Keep changes minimal and focused on the bug fix
Submit pull request to merge back into
developwhen complete
Release Strategy
The project follows a structured release process aligned with the GitFlow branching model:
Release Branch Creation
When
developbranch contains all features planned for releaseCreate release branch:
release/vX.Y.ZBranch naming follows semantic versioning (e.g.
release/v1.2.0)
Release Finalization
After thorough testing and stabilization: - Merge release branch into
main- Tag the release inmainwith version number - Merge release branch back intodevelop- Delete the release branch
Hotfix Process
For critical production issues: - Create hotfix branch from
main(e.g.hotfix/v1.2.1) - Implement and test the fix - Merge hotfix into bothmainanddevelop- Tag the new version inmain