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 :
- Se positionner sur la branche
develop
- Ouvrir la liste des branches
- Saisir le nom de votre nouvelle branche à créer à partir de
develop
Le nom devra commencer parissue-
et doit faire référence à l'issue déclarée tel que :issue-14
. - Dans votre environnement de travail, et saisir la commande
git pull
avec le terminal GIT. - Positionnez-vous sur la branche
issue-14
avec la commande :
git checkout issue-14
- 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'
- Réalisez une Pull Request (PR) à l'aide de l'interface GitHub pour intégrer les modifications de la branche
issue-14
dans la branchedevelop
.
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