[Nantes JUG] Gitflow In Action

Le Nantes JUG de mai nous présentait 3 “quickies” (de 30 minutes). La présentation de GitFlow par Cécilia Bossard a particulièrement retenu mon attention. En effet, Git-flow est une librairie d’extensions pour Git qui facilite l’adoption de bonnes pratiques. Pour un développeur habitué à SVN qui ne sait pas vraiment comment bien gérer un projet sous Git, c’est une aide précieuse.
Initier un projet avec git-flow se fait en tapant la commande :

git flow init

Cette commande crée automatiquement une branche de développement et nous place dessus.

Si nous voulons développer une fonctionnalité, nous utiliserons :

git flow feature start "nom_feature"

Une branche est créée pour cette fonctionnalité et nous sommes placés dessus. Nous pouvons maintenant développer notre fonctionnalité, et quand nous avons terminé, utiliser la commande :

git flow feature finish "nom_feature"

Le merge avec la branche develop est automatiquement effectué, et nous sommes placés sur cette branche.

De la même manière, nous pouvons utiliser les commandes git flow release start 1.1.0 et git flow release finish 1.1.0 (remplacer 1.1.0 par le numéro de version désiré) pour utiliser une branche de release, qui basculera tout sur master au finish, mais mettra également à jour la branche de développement avec les patchs éventuels, en taguant le numéro de release.

Git-flow gère également des branches de hotfix pour corriger la production. C’est une branche qui est détruite au finish, tout étant reporté sur master et develop avec un tag. Si l’on souhaite corriger une vieille version en production, on va pouvoir créer une branche de support, qui fonctionne comme les autres, à la différence qu’elle ne comprend pas de commande finish. Si nous voulons reporter le patch sur la branche de développement, il faudra le faire à la main.

Un résumé en imageUn résumé en image

Enfin, Gitflow fournit quelques hooks bien pratiques, par exemple pour une incrémentation automatique des numéros de version.

Pour quelqu’un ayant l’habitude de Git, Gitflow n’a rien de révolutionnaire, puisqu’il ne fait que simplifier des commandes que l’on utilise déjà avec Git. Son intérêt repose dans le fait qu’il permet de formaliser avec un langage de développeur le processus de développement d’une application sous Git, et donc de faciliter la mise en œuvre de bonnes pratiques.

Vous pouvez trouver le support de présentation sur slideshare.

La prochaine soirée du Nantes JUG sera le 22 juin, et j’y présenterai l’expérience utilisateur.

Crédits image :

http://www.keepcalm-o-matic.co.uk/p/keep-calm-and-git-flow/

https://www.flickr.com/photos/miguelpdl/4994396370