Gitflow Concepts
External
- http://nvie.com/posts/a-successful-git-branching-model/
- http://weaintplastic.github.io/web-development-field-guide/Collaboration/Working_with_Git/Git_Workflow/The_Concept_of_Gitflow
- https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
- https://jeffkreeftmeijer.com/git-flow/
Internal
Overview
Gitflow is a development and release model built around git
, a small set of branch types ("main", "develop", "release-*", "hotfix-*" and feature), and procedures around those branch types.
Some articles designate Gitflow as obsolete. In our opinion, Gitflow continues to be relevant for all applications that need to be versioned, including applications delivered as web services. Gitflow helps with consistent versioning. "release" branches nicely isolate the last moment release tweaks from ongoing development that can interact with "develop" at will. "hotfix" branches support cleanly patching production with critical bug fixes that can’t wait until the next scheduled release. In the best case, no critical production bugs occur, so no "hotfix" branches are used, and the entire team is working off develop towards the next release, so the release is performed straight from develop by merging it into master and no "release" branch is necessary. But these are edge cases. Using all conventional Gitflow branches and procedures introduces clarity to the development process.