🌿 GitFlow

Vue d'ensemble

1main <- Production. Stable. Sacrée. On n'y touche jamais directement. 23├── hotfix/ <- Correction urgente en production. Créée depuis main. 45develop <- Branche d'intégration. Toujours à jour. Base de tout développement. 67├── feature/ <- Nouvelle fonctionnalité. Créée depuis develop. 89└── release/ <- Préparation d'une version. Créée depuis develop.

📌 Règles absolues

On ne push JAMAIS directement sur main ou develop

Tout passe par une Pull Request reviewée


🔄 Cycle de vie d'une fonctionnalité

1. Créer sa branche depuis develop

bash
1git checkout develop 2git pull origin develop 3git checkout -b feature/nom-fonctionnalite

2. Développer et committer

bash
1git add . 2git commit -m "feat: description courte de ce que tu as fait" 3git push origin feature/nom-fonctionnalite

3. Ouvrir une Pull Request

  • Base : develop
  • Compare : feature/nom-fonctionnalite
  • Remplir le template de PR
  • Assigner un reviewer

4. Après validation -> merge dans develop puis supprimer la branche


🚨 Cycle de vie d'un Hotfix

bash
1# Depuis main uniquement 2git checkout main 3git pull origin main 4git checkout -b hotfix/description-courte 5 6# ... corriger le bug ... 7 8git commit -m "fix: description du correctif" 9git push origin hotfix/description-courte 10 11# Ouvrir une PR vers main ET une PR vers develop

⚠️ Un hotfix doit toujours être mergé dans main ET develop pour ne pas perdre la correction.


🚀 Cycle de vie d'une Release

bash
1# Depuis develop 2git checkout develop 3git pull origin develop 4git checkout -b release/v1.2.0 5 6# Derniers ajustements, bump de version... 7git commit -m "chore: bump version to 1.2.0" 8git push origin release/v1.2.0 9 10# PR vers main, puis PR vers develop

📛 Nommage des branches

TypeFormatExemple
Fonctionnalitéfeature/nom-fonctionnalitefeature/authentification-oauth
Correction urgentehotfix/description-courtehotfix/fix-login-crash
Releaserelease/vX.Y.Zrelease/v1.2.0

Règles de nommage

  • En anglais - comme les commits et le code
  • ✅ Minuscules uniquement
  • ✅ Tirets -pour séparer les mots (pas d'underscore, pas d'espace)
  • ✅ Nom court mais descriptif
  • ❌ Pas de caractères spéciaux
  • ❌ Pas de / supplémentaires dans le nom