• 12 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 26/08/2019

Travaillez en équipe en utilisant un workflow

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Qu'est-ce que le flux de travail ou workflow?

Un workflow Git est une recommandation sur la façon d'utiliser Git pour effectuer un travail de manière cohérente et productive. Plusieurs workflows connus sont couramment utilisés par les développeurs pour des projets personnels, mais aussi par les entreprises. Le plus connu est GitFlow, que nous verrons dans le chapitre suivant. :-°

Git offre beaucoup de flexibilité dans la manière dont les utilisateurs gèrent les changements. Étant donné que Git met l’accent sur la flexibilité, il n’existe pas de processus normalisé pour interagir avec Git.

Lorsque vous travaillez avec une équipe sur un projet géré par Git, il est important de vous assurer que l'équipe est tout à fait d'accord sur la manière dont le flux de modifications sera appliqué. o_O

Pour que l'équipe soit sur la même page, un workflow Git convenu doit être développé ou sélectionné. Il existe plusieurs flux de travail Git connus qui conviendront peut-être à votre équipe. Ici, nous allons discuter de certaines de ces options de workflow.

Comme nous vous l'avons dit juste au-dessus, il existe plusieurs workflows déjà "standardisés".

 Parmi les plus utilisés, vous trouverez le workflow de duplication (fork).

Au lieu d'utiliser un dépôt unique côté serveur pour agir en tant que base de code « centrale », ce workflow fournit un dépôt côté serveur à chaque développeur. Par conséquent, chaque contributeur dispose non pas d'un, mais de deux dépôts Git : un privé en local et un public côté serveur.

Vous le rencontrerez souvent dans de gros projets open source ! :D

Un autre workflow populaire est le workflow de fonctionnalités. Le principe de base du workflow de branche par fonctionnalité est que chaque fonctionnalité est développée dans une branche prévue à cet effet plutôt que dans la branche master. Grâce à cette encapsulation, plusieurs développeurs peuvent travailler aisément sur une même fonctionnalité sans modifier la base de code principale. Il sera utilisé essentiellement dans le cadre de l'intégration continue.

Et enfin, le workflow le plus connu : GitFlow. :)

GitFlow est parfaitement adapté aux projets avec un cycle de livraison planifié. Maintenant, voyons-le un peu de plus près !

Appréhendez le fonctionnement de GitFlow

Utiliser Git est une chose, l'utiliser correctement en est une autre !  Beaucoup de personnes ont donc réfléchi à différentes manières d'utiliser au mieux Git. :soleil:

GitFlow est une méthode, une architecture Git permettant de séparer au maximum le travail et de toucher le moins possible à la branche master. Cette méthode représente donc une architecture en branches. GitFlow est une des architectures les plus connues. GitFlow n'ajoute aucun concept ni aucune commande, il attribue plutôt des rôles très spécifiques aux différentes branches et définit comment et quand elles doivent interagir. Pour utiliser GitFlow, il va falloir dans un premier temps l'installer. Une fois GitFlow installé, vous pouvez l'utiliser dans votre projet en exécutant la commande  git flow init 

GitFlow va définir dans un premier temps deux branches distinctes dans lesquelles les développeurs n'auront aucunement le droit de développer. :pirate:

La branche master est la branche qui va correspondre à notre environnement de production. Il est donc logique que l'on ne puisse y pousser nos modifications directement.
 

La branche Develop centralise toutes les nouvelles fonctionnalités qui seront livrées dans la prochaine version. Ici, il va falloir se forcer à ne pas y faire de modifications directement. Dans le cadre d'un gros projet, la branche Develop correspond en général à notre environnement de recette. L'environnement de recette est une copie du projet qui est censée partir en production et où les testeurs vont réaliser une batterie de tests afin d'être sûrs de ne pas envoyer de bugs en production.
La branche master stocke l'historique officiel des versions, et la branche Develop sert de branche d'intégration pour les fonctionnalités.

Que signifient tous les types de branches et quelles sont leurs utilités ?

GitFlow ne se contente bien sûr pas uniquement de deux branches. À ces deux branches vont venir s'ajouter trois autres types de branches :

  • feature ;

  • hotfix ;

  • release.
     

Les branches Feature permettent de commencer à travailler sur une nouvelle fonctionnalité. La branche Feature est créée à partir de la branche Develop. Vous devrez créer pour chaque nouvelle fonctionnalité une branche Feature ! Lorsque nous avons fini de développer notre nouvelle fonctionnalité, il faudra alors la commiter puis la fusionner sur la branche Develop.

La branche Hotfix, quant à elle, va permettre de corriger un bug en production. En ce sens, elle sera créée à partir de la branche master, car c'est la branche master qui correspond à l'environnement de production. Une fois la branche Hotfix terminée, elle est mergée dans la branche Develop et dans la branche master.

La branche Release est créée à partir de la branche Develop en cas de livraison en production imminente. En effet, dans le cadre d'un projet un peu plus conséquent, il y a souvent plusieurs versions. Une fois que toutes les fonctionnalités d'une version ont été créées, c'est à ce moment que nous devons créer une branche Release. Elle va permettre de réaliser nos tests alors que d'autres développeurs pourront commencer à travailler sur la version suivante. Lorsque la branche Release est terminée, nous devons la merger dans la branche Develop et dans la branche master.

Maintenant que vous savez tout de GitFlow, nous allons voir comment l'implémenter simplement.

Nous allons dans un premier temps, initialiser notre dépôt avec GitFlow.

git flow init

Vous pouvez maintenant faire un  Git branch  et vous verrez que vous avez une branche master et une branche Develop et que vous vous trouvez sur la branche Develop.

Pour commencer à travailler sur notre projet, nous allons devoir créer une feature. Étant au tout début du projet, notre feature va correspondre à la base notre projet. Elle s’appellera donc main.

git flow feature start main

Avec l'exécution de cette commande, Git créera la branche Feature main et nous basculera dessus. Vous pouvez maintenant commencer vos développements.

Vous connaissez maintenant l'essentiel du GitFlow, découvrons à présent les outils pour améliorer Git !

Exemple de certificat de réussite
Exemple de certificat de réussite