Workflows Git

Comment les équipes organisent branches, revues et versions. Chaque workflow ci-dessous est présenté avec ses règles telles que formulées par sa source d’origine, les cas où il convient, et une démonstration animée — exécutée par le simulateur Git et vérifiée avec le vrai Git.

WorkflowBranches de longue duréeMode de publicationIdéal pour
mainDéployer main après chaque pull request fusionnéeApplications en déploiement continu
main, developBranches de release, taguées sur mainLogiciels versionnés, plusieurs versions maintenues
main (the trunk)Depuis le tronc, ou une branche de release de courte duréeÉquipes CI/CD qui intègrent chaque jour
upstream’s mainLes mainteneurs fusionnent les pull requests venant des forksOpen source, contributeurs sans droit d’écriture

GitHub flow

Une branche main + des branches de courte durée + des pull requests

Un workflow léger, basé sur les branches. Tout ce qui est dans main est déployable ; chaque modification se fait sur sa propre branche au nom descriptif, fusionnée dans main via une pull request relue, puis déployée.

Les règles

  1. Tout ce qui est dans la branche main est déployable.
  2. Créez une branche au nom descriptif à partir de main pour chaque modification.
  3. Committez en local et poussez régulièrement vers la branche du même nom.
  4. Ouvrez une pull request pour avoir des retours, ou quand la branche est prête à être fusionnée.
  5. Fusionnez dans main après la revue, puis supprimez la branche.
  6. Déployez dès la fusion (dans l’article d’origine : « vous pouvez et devriez déployer immédiatement »).

✓ À utiliser quand

Applications web et services déployés en continu à partir d’une seule version.

✗ À éviter quand

Vous devez maintenir plusieurs versions publiées en parallèle.

Sources

L’ouverture et la fusion de la pull request se font sur GitHub ; la démonstration montre les opérations Git équivalentes (le bouton de fusion par défaut de GitHub crée un commit de fusion).

Mettez le workflow en place et parcourez-le une fois.

VOS FICHIERS — UN FICHIER, TROIS ENDROITSRépertoirevotre disquePréparationà committerHEADdernier commitadd ›commit ›GITUALIZE☁ ORIGIN — github.com/acme/shop (un autre dépôt)VOTRE DÉPÔT — .git sur votre ordinateur2e039acAdd homepage2e039ac897849007af489a58ee9eec107a21974e Add homepageb272b3aSet up projectb272b3abaca08f2f1c56c0562679f66a61035535 Set up project129c2dbInitial commit129c2db06bfe68f8469dc82e6e05d1c03d1f768c Initial commit2e039acAdd homepage2e039ac897849007af489a58ee9eec107a21974e Add homepageb272b3aSet up projectb272b3abaca08f2f1c56c0562679f66a61035535 Set up project129c2dbInitial commit129c2db06bfe68f8469dc82e6e05d1c03d1f768c Initial commitmainmain: une étiquette déplaçable sur un commitorigin/mainorigin/main: votre marque-page LOCAL de l’endroit où était la branche d’origin lors de votre dernier fetch/pushHEADHEAD → la branche sur laquelle vous êtesmainmain: tel qu’il existe SUR originREADME.mdinchangéapp.jsinchangéindex.htmlinchangév1v1v1v1v1v1v2v2v2HEAD → main → 2e039ac “Add homepage”
0.0s / 142s
commitanneau = le commit où se trouve HEADinaccessible (existe encore)branche = étiquette déplaçableorigin/* = votre marque-page du dépôt distantHEAD = là où vous êtes
  1. 1 Créer une branche

  2. 2 Faire des modifications

  3. 3 Créer une pull request

  4. 4 Traiter les commentaires de relecture

  5. 5 Fusionner votre pull request

  6. 6 Supprimer votre branche