Avoir une bonne stratégie Git avec Git Flow

Git est l’outil le plus utilisé pour versionner nos projets, c’est bien, c’est utile mais quand on commence à être plusieurs sur un même projet, les problèmes peuvent arriver très rapidement. Adopter une bonne stratégie en utilisant Git est donc de mise si nous voulons éviter tout ça. Dans cet article nous parlerons de Git Flow, une technique utilisée qui se base sur la création de branche. Nous verrons tout d’abord les principes de base avant de passer sur un cas pratique.

Pourquoi Git Flow ?

Ne vous est-il jamais arrivé de travailler en équipe sur un projet, et au moment de faire un git push, un message d’alerte vous prévient que votre version locale n’est pas à jour ? Du coup, vous faites un git pullpour vous mettre à jour afin de push mais… Catastrophe ! Git vous prévient qu’il y a un conflit. La charge de résoudre tous ces conflits vous incombe donc. Quand il ne s’agit que de quelques lignes cela peut passer, mais lorsqu’il s’agit de fichiers entiers, cela peut vite devenir fastidieux.

Pas de panique ! Git Flow est là ! Ce workflow est facile à comprendre et évite beaucoup de conflits. Il permet aussi une meilleure visibilité et gestion des releases et donc une mise en production en bonne et due forme. Normalement, Git Flow couvre l’ensemble des besoins standards pour la plupart des projets de développement. Git Flow fonctionne encore mieux si vous travaillez en suivant une méthodologie Scrum avec des sprints, comme Scrum. En effet, Git Flow fonctionne avec un système de features, c’est-à-dire que chaque nouvelle fonctionnalité à ajouter dans votre projet sera tagguée et aura sa propre branche avant d’être mergée dans la branche develop, du coup chaque user story pourra correspondre à une feature et chaque sprint à une release qui aura son propre tag de version.

Certains préfèreront utiliser Github Flow, qui est un peu la version légère de Git flow. Github Flow semble plus simple à appréhender et adapté aux déploiements en production plus récurrents : on n’attend plus d’avoir fini une release pour déployer. Il fonctionne avec 2 branches :

  • master qui est la branche principale à partir de laquelle on déploie.
  • XXX qui sera une branche tirée du master et sur laquelle on commit et ouvre des pull requests avant de merger sur le master, qui gardera un historique des pull requests.

Revenons à Git Flow. Il existe pas mal d’outils avec une interface graphique, en voici 2 principaux :

  • Source Tree fait partie de la suite Atlassian (BitBucket, Confluence, Jira, etc.) et est très utilisé par les professionnels. Il fonctionne très bien et intègre Git Flow nativement.
    • Atouts : très stable, très utilisé dans les entreprises, on peut facilement le jumeler avec les autres applications Atlassian et propose la plupart des fonctionnalités de git
    • Inconvénients : selon mon expérience, il est très gourmand en ressources, les requêtes (pull et push) ne sont pas faites en asynchrones et bloquent toute l’application pendant qu’elles s’exécutent
  • GitKraken est un nouvel outil développé par Axosoft. Il intègre aussi GitFlow. C’est ce que j’utilise et j’en suis plutôt satisfait.
    • Atouts : L’interface est très séduisante, l’application est légère et rapide, il suffit de faire un simple drag and drop pour merger deux branches.
    • Inconvénients : Cette application est encore très jeune, il lui arrive donc parfois encore de crasher.

Sinon, vous pouvez installer git-flow afin de l’utiliser dans un terminal.

Lire la suite dans l’article original.

Autres articles en langue français sur le sujet Git Flow:

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s