Choisir un Workflow Git adapté à votre équipe

Le site Atlassian a récemment mis à jour son comparatif des différents workflows Git, véritable référence en la matière. Ce guide permet d’étudier les quatre principaux workflow.

Le workflow centralisé

Workflow Git Centralisé
Il s’agit de la manière la plus basique d’utiliser Git, utilisée en découvrant l’outil et le plus souvent souvent seul ou à tour de rôle. Son fonctionnement est simple, résistant aux problèmes, il se répare vite mais laisse entre contrepartie un Master potentiellement instable.

Les branches par fonctionnalités

Workflow Git Branches par fonctionnalités
Ce workflow est très proche du workflow centralisé, mais il introduit une notion importante : le Master doit rester stable en toute circonstance. Le développement s’effectue dans des branches qui sont créées au début de chaque nouvelle fonctionnalité. Le merge d’une fonctionnalité dans le Master n’a lieu que lorsqu’elle est finalisée et qu’elle a été testée.

Ce workflow offre la possibilité de se passer des modifications entre développeurs sans les déployer en production, ou de travailler à plusieurs en parallèle sans être parasité par des évolutions inachevées.

Le Gitflow

Gitflow
Ce workflow rajoute au précédent un dédoublement du Master en Master/Development ou Master/Release/Development voire Master/Hotfix/Release/Development selon la complexité souhaitée.

Ce workflow induit la notion de version sur le Master : des fonctionnalités sont regroupées avant un merge dans Release puis dans Master. La branche Development devient le lieu d’intégration des fonctionnalités.

Le workflow par clonage

Forking workflow
Ce dernier workflow peut être utilisé en partant d’un des deux précédents workflows : les branches de fonctionnalités sont simplement remplacées par des dépôts privés forkés par les développeurs. Le but est uniquement de restreindre les droits des contributeurs au projet (lecture seule sur le dépôt central) qui est administré par un mainteneur.

Dans ce modèle, les fonctionnalités sont signalées par des merge-requests sur une interface où le mainteneur peut faire une revue de code.

Conclusion

Choisir un workflow n’est pas chose évidente : tout dépend de la manière dont vous devez livrer votre projet ainsi que du niveau de confiance que vous avez en vos contributeurs.

Les workflows centralisés ou de branches par fonctionnalités sont bien adaptés au travail d’une équipe de développement à taille humaine. Les workflows type Gitflow ou par clonage (forking) sont adaptés au travail contraint par la livraison de versions stables, ou dans un contexte où des développeurs qui ne se connaissent pas doivent pouvoir coopérer.

Scott Chacon, développeur chez GitHub, a mis en avant l’inadaptation du Gitflow dans leur équipe. Il préfère à cela le GitHub Flow qui n’est rien de plus que le workflow de branches par fonctionnalités.

Une réponse sur “Choisir un Workflow Git adapté à votre équipe”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.