Was Git Flow ist
Git Flow ist ein 2010 von Vincent Driessen vorgeschlagenes Branching-Modell.
Die funf Branches
main- halt produktionsbereiten Code.develop- Integrations-Branch.feature/*- off vondevelop.release/*- off vondevelop, gemerged inmain.hotfix/*- off vonmain.
Ein Feature-Lebenszyklus
git checkout develop
git pull
git checkout -b feature/oauth-login
git checkout develop
git merge --no-ff feature/oauth-login
git push origin develop
git branch -d feature/oauth-login
Ein Release
git checkout develop
git checkout -b release/1.4.0
git checkout main
git merge --no-ff release/1.4.0
git tag -a v1.4.0 -m "Release 1.4.0"
git checkout develop
git merge --no-ff release/1.4.0
git branch -d release/1.4.0
Ein Hotfix
git checkout main
git checkout -b hotfix/1.4.1
git checkout main
git merge --no-ff hotfix/1.4.1
git tag -a v1.4.1 -m "Hotfix 1.4.1"
git checkout develop
git merge --no-ff hotfix/1.4.1
git branch -d hotfix/1.4.1
Die git-flow-CLI
brew install git-flow-avh
git flow init
git flow feature start oauth-login
git flow feature finish oauth-login
Wann Git Flow passt
- Versionierte, herunterladbare Software.
- Parallele Wartung mehrerer unterstutzter Versionen.
- Lange QA-Zyklen.
Wann es nicht passt
- Kontinuierlich deployte Webapps.
- Kleine Teams ohne dedizierten Release-Prozess.
- Trunk-based Engineering-Kulturen.