Skip to content

Travailler avec git flow

aymericderbois edited this page Oct 5, 2012 · 4 revisions

Git flow

Kezako ?

Grosso modo git-glow est un système de branche pour git qui permet d'être un peu plus ordonné !

Par défaut il y a deux branches :

  • master : Branche stable, on ne commit jamais directement sur cette branche

  • -develop_ : Branche contenant la version de développement. Cette branche doit compiler et passer tout les tests On ne commit pas non plus directement dessus.

Il y a ensuite trois autres types de branches : release, feature et hotfix

  • feature : Pour toutes nouvelles features on créer une nouvelle branche à partir de develop se nommant feature/Name. Lorsque l'on a terminé de développer la feature on merge la branche avec develop

  • release : Pour chaques releases que l'on veut sortir on créer une nouvelle branche à partir de develop se nommant release/Name. Sur cette branche on ne fait que des bugfix ! Une fois la branche totalement stable on la merge avec master et develop

  • hotfix : Quand on a besoin de corriger un bug génant qui est en prod ou que l'on souhaite faire une petite modif importante pour la prod on créer une nouvelle branche à partir de la master. Une fois le bug corrigé, ou la modif faite on merge avec master et develop. Attention on ne fait jamais de grosses modifs en hotfix !!

Outils ?

Git flow est énormément utilisé et il existe donc une extension git pour nous simplifier la vie. Le plus simple pour l'installation est d'utiliser le gestionnaire de paquet de votre distrib. L'extension est disponible sur Fedora et Ubuntu dans les dépots officiels !

Pour aller encore plus loin il existe des extensions bash et zsh pour l'autocompletion de git-flow. Extensions Bash et Zsh

Utilisation exemples

Feature

On créer la feature

git flow feature start MyFeature

Ensuite on bosse et commit comme d'hab.

Quand on veut push la branch

git flow feature publish MyFeature

Ensuite à chaque fois qu'on veux push il suffit d'utiliser git push.

Quand on a terminé la feature.

git flow feature finish MyFeature

La branche à été mergée avec develop et supprimé. Un git push suffit pour push le merge.

Attention la branch sur le repos n'est pas supprimée !

Pour les autres types de branches c'est pareil ;). N'hésitez pas à utiliser la completion bash ou zsh c'est vraiment top !

Liens

Présentation de git flow

Dépot de git flow

Explication de l'utilisation de git flow

##Conclusion A première vue ça peut paraître assez contraignant mais à force d'utilisation cela fait gagner du temps et évite de faire des bêtises sur les branches importantes. Nous allons donc utiliser ce système sur tous les dépots du projet

Clone this wiki locally