Essayer gratuitement
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                          │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Solutions Connexes