Appearance
Gitflow
GitFlow is a branching model for version control using Git. It provides a clear structure for collaborative development and release management.
Main branches
The Minimum Viable Products
The goal is to explain the design and planning for managing the code when a Minimum Viable Product (MVP) is completed and ready for testing in a release. At the same time, this MVP is delivered to the customer as soon as possible, while the team continues to work on the next MVP.
Telmo Riofrio
Stability and Version Control:
GitFlow uses branches to represent both the development and production environments. These branches can be named, for development,develop,unstable,main,trunk, among others. For production, they can be namedmaster,production,stable, or even with the latest version number, such as1.x. This approach ensures stability while enabling continuous evolution of the software.Complementary Branches:
The complementary branches of GitFlow are usually feature and hotfix, which can be named as follows:feature/name-of-the-requirementandhotfix/name-of-the-issue.Tags:
The GitFlow methodology is complemented by a good use of tags. These tags can follow the nomenclature SemVer, a standard for semantic versioning.
Branch Structure
- master/main: Represents the main branch of the project, which reflects the stable and production-ready version.
- development: Development branch where all the features in progress are integrated.
- feature/: Branches used to develop new features or functionalities.
- release/: Branches used to prepare a new production version.
- hotfix/: Branches used to fix critical bugs in production.
- unstable: Branch for continuous integrations and testing of unstable code before moving to
develop. - production: Main production branch containing the most stable version of the software and ready to be deployed.
- stable: Branch that reflects a more controlled and stable version before moving to production.
- 1.x: Numbered version branch indicating the latest stable version, such as
1.0,1.1, etc.
Workflow
Good Development Practices
Significant Branch Names: No branch name should start with an uppercase letter. All branches must use lowercase and dashes (-) to separate different words. Avoid using underscores (_).
Agile Methodological Organization: Integrate GitFlow into an agile development process, enabling frequent deliveries and continuous adaptation.
Project start-up
A Git repository is created and the main branches (master/main, develop) are established and protected.
Feature Development
Feature branches are created to implement new functionalities. Once completed, the features are merged into the develop branch.
Preparation and Launching
A release branch is created from develop to prepare a production version. Final testing and tuning is performed on the release branch. The final version is merged into master/main and develop, and tagged with a version number.
Urgent Arrangements
If critical issues arise in production, a hotfix branch is created to fix them. Once fixed, the changes are merged into master/main and develop.