4 min lecture • Guide 817 of 877
Développement Basé sur le Trunk
Intégrez continuellement. GitScrum supporte les workflows de développement basé sur le trunk où les équipes intègrent fréquemment à la branche principale pour un feedback et une livraison plus rapides.
Comprendre le Développement Basé sur le Trunk
Concepts Clés
DÉVELOPPEMENT BASÉ SUR LE TRUNK:
┌─────────────────────────────────────────────────────────────┐
│ │
│ LE CONCEPT: │
│ ─────────── │
│ Tout le monde intègre à main/trunk fréquemment │
│ Branches courtes (heures, pas semaines) │
│ Intégration continue à la base de code partagée │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ TRUNK-BASED: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ││
│ │ main ─●──●──●──●──●──●──●──●──●──●──●──●──→ ││
│ │ ╲╱ ╲╱ ╲╱ ╲╱ ╲╱ ││
│ │ ─● ─● ─● ─● ─● ││
│ │ (branches courtes - heures/jour) ││
│ │ ││
│ │ • Petits merges fréquents ││
│ │ • Conflits petits et faciles ││
│ │ • Toujours livrable ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ VS GITFLOW: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ││
│ │ main ─●────────────────────────●────→ ││
│ │ develop ─●──●──●──●──●──●──●──●──●●───→ ││
│ │ ╲ ╱ ││
│ │ feature ──●────●────●────●────●─ ││
│ │ (semaines/mois) ││
│ │ ││
│ │ • Gros merges à la fin ││
│ │ • Douleur d'intégration ││
│ │ • "Enfer des merges" ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ DIFFÉRENCE CLÉ: │
│ Trunk-based = Intégrer souvent, petits lots │
│ GitFlow = Intégrer à la fin, gros lots │
└─────────────────────────────────────────────────────────────┘
Comment Ça Marche
Le Workflow
WORKFLOW TRUNK-BASED:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FLUX QUOTIDIEN: │
│ ─────────────── │
│ │
│ 1. PULL DERNIER │
│ git checkout main │
│ git pull │
│ │
│ 2. CRÉER BRANCHE COURTE │
│ git checkout -b add-login-button │
│ (La branche vit des heures, pas des semaines) │
│ │
│ 3. FAIRE PETIT CHANGEMENT │
│ - Implémenter petite pièce complète │
│ - Ajouter tests │
│ - Rester focalisé │
│ │
│ 4. PUSH ET PR │
│ git push origin add-login-button │
│ - Créer PR │
│ - Obtenir revue rapide │
│ │
│ 5. MERGE MÊME JOUR │
│ - Merge à main │
│ - Supprimer branche │
│ - Commencer pièce suivante │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ DURÉE DE VIE BRANCHE: │
│ ───────────────────── │
│ ✅ Heures ← Idéal │
│ ✅ 1 jour ← Bon │
│ ⚠️ 2-3 jours ← Devient long │
│ ❌ 1 semaine+ ← Pas trunk-based │
│ │
│ RÈGLE: "Si branche vit au-delà fin journée, problème" │
└─────────────────────────────────────────────────────────────┘
Feature Flags
GÉRER FEATURES INCOMPLÈTES:
┌─────────────────────────────────────────────────────────────┐
│ │
│ FEATURE FLAGS: │
│ ────────────── │
│ │
│ if (featureFlags.newCheckout) { │
│ // Nouveau code (en développement) │
│ showNewCheckout(); │
│ } else { │
│ // Ancien code (production) │
│ showLegacyCheckout(); │
│ } │
│ │
│ BÉNÉFICES: │
│ • Code en production, feature cachée │
│ • Tester en prod avec quelques utilisateurs │
│ • Rollback instantané (toggle flag) │
│ • Séparer déploiement de release │
│ │
└─────────────────────────────────────────────────────────────┘