Da Anonimo (non verificato) , 29 Aprile 2026

Cos'e Git Flow

Git Flow e un modello di branching proposto da Vincent Driessen nel 2010. Definisce cinque tipi di branch — main, develop, feature/*, release/*, hotfix/*.

I cinque branch

  • main - tiene il codice production-ready.
  • develop - branch di integrazione per la prossima release.
  • feature/* - off da develop.
  • release/* - off da develop, mergato in main e di nuovo in develop.
  • hotfix/* - off da main.

Un ciclo di vita di feature

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

Una 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

Un 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

La CLI git-flow

brew install git-flow-avh
git flow init
git flow feature start oauth-login
git flow feature finish oauth-login

Quando Git Flow si adatta

  • Software versionato e scaricabile.
  • Manutenzione parallela di piu versioni supportate.
  • Lunghi cicli QA tra feature freeze e release.

Quando non si adatta

  • App web continuamente deployate.
  • Team piccoli senza un processo di release dedicato.
  • Culture di trunk-based engineering.