====== Gitflow ====== **gitflow** is a branching model for git created by Vincent Driessen. It forms an elegant mental model that is easy to comprehend and allows team members to develop a shared understanding of branching and releasing processes. Detailed information can be found on [[http://nvie.com/posts/a-successful-git-branching-model/|A successful git branching model]]. The Git Tower team wrote another detailed description on [[https://www.git-tower.com/learn/git/ebook/en/desktop-gui/advanced-topics/git-flow|how to use gitflow]] with a GUI tool. Basic usage and effect of git-flow operations on the command line: \\ [[https://danielkummer.github.io/git-flow-cheatsheet/]] In a nutshell: * use different branches for different purposes * ''master'' holds only releases (and bugfixes) * ''develop'' holds the latest version under development * only tested features are merged into develop * all features are developed in single, separate branches called ''feature/xxx'' * these feature branches are merged back into ''develop'' after the feature is finished and tested | {{kb:bestpractices:scc:gitflow.jpeg?600|}} | ---- ===== Configuration ===== Certain git flow specifics can be defined in the git configuration: git config --global gitflow.branch.master "main" git config --global gitflow.branch.develop "develop" git config --global gitflow.prefix.feature "feature/" git config --global gitflow.prefix.release "release/" git config --global gitflow.prefix.hotfix "hotfix/" git config --global gitflow.prefix.support "support/" git config --global gitflow.prefix.versiontag "" See [[https://github.com/petervanderdoes/gitflow-avh/wiki/Reference:-Configuration|git flow's wiki page]] for more information.