Git Flow - sigrennesmetropole/cartoHoraires GitHub Wiki

Qu’est-ce que c’est ?

Git Flow est un workflow (organisation) permettant d’établir une stratégie de base pour le travail collaboratif. Avec Git, cette méthodologie permet d'axer la création des branches et les modes de fonctionnement entre les développeurs.

Git Flow permet donc de gérer le travail collaboratif pour gérer les issues (bugs), les features (nouvelles fonctionnalités) et les releases (versions).

Principes de base

Pour simplifier, le fonctionnement est basé sur 2 branches : master et develop.

Si plusieurs personnes travaillent sur ces deux branches, l’historiques des réalisations (commits) peut vite devenir illisible et les modifications risquent de se court-circuiter (conflits).

L’idée est donc de créer des sous-niveaux de branches :

Les branches features-xxxx permettent de travailler sur des nouvelles fonctionnalités. Elles sont crées directement à partir de la branche develop et une fois le travail fini, fusionnées vers la branche develop. Les branches release-xxxx permettent de faire une mise à jour de la branche master à partir de la branche develop. Les branches hotfix-xxxx permettent de publier rapidement (hot) une correction (fix) depuis la branche master. Ces branches seront ensuite fusionnées vers la branche master et develop.

En pratique

Issues (bugs)

Une issue doit au préalable avoir été déclarée dans les issues du repository.

Aller sur le repository https://github.com/sigrennesmetropole/cartoHoraires :

  1. Se positionner sur la branche develop
  2. Ouvrir la liste des branches
  3. Saisir le nom de votre nouvelle branche à créer à partir de develop Le nom devra commencer par issue- et doit faire référence à l'issue déclarée tel que : issue-14.
  4. Dans votre environnement de travail, et saisir la commande git pull avec le terminal GIT.
  5. Positionnez-vous sur la branche issue-14 avec la commande :

git checkout issue-14

  1. Travailler dans cette branche uniquement pour ce qui concerne cette issue et faites les commits nécessaires.

Rappel : un commit doit comporter un message avec la commande :

git commit -m 'Message du commit'

Un commit qui ferme à une issue doit contenir, dans le message, une référence à l'issue tel que : git commit -m 'Fix #14 - Fix issue with foo and bar'

  1. Réalisez une Pull Request (PR) à l'aide de l'interface GitHub pour intégrer les modifications de la branche issue-14 dans la branche develop.

Si possible, la PR devra être revue par une autre personne avant d'être intégrée.

Features

Les features sont les travaux à ajouter. Ce ne sont pas des corrections. Ce peut-être des évolution d'une fonctionnalités ou une nouvelle fonctionnalité. Le process est le même que pour une issue (bug). Il vous faudra créer une issue et créér une branche.

Le nom de la branche doit par contre contenir feature- plus le numéro de l'issue tel que : feature-14

Documentation externe

Pour plus d'informations sur le Git Flow, reportez-vous à la documentation Mviewer :

https://mviewerdoc.readthedocs.io/fr/latest/doc_contrib/git.html