Choisir entre Git Flow et le développement basé sur le tronc (TBD) peut avoir un impact significatif sur votre flux de CI/CD. Voici une brève analyse :
- Git Flow: Idéal pour les environnements structurés et contrôlés par version. Il utilise plusieurs branches comme
main,develop,feature,releaseethotfix. Adapté pour les grandes équipes, des cycles de mise à jour plus lents et des processus de test qualité stricts. - Développement basé sur le tronc: Se concentre sur une branche principale unique avec des branches de fonctionnalités à vie courte. Conçu pour les équipes plus petites, des mises à jour rapides et des tests automatisés solides.
Comparaison rapide :
| Aspect | Flux Git | Développement basé sur la branche principale |
|---|---|---|
| Complexité de la branche | Plusieurs branches longues | Une seule branche, des branches de courte durée |
| Rythme de la mise en production | Mises en production planifiées | Déploiement continu |
| Taille de l'équipe | Équipes grandes | Petites à moyennes équipes |
| Évaluation | Évaluation finale | Test automatisé |
| Risque de déploiement | Moins avec des lancements étalés | Plus avec des mises à jour fréquentes |
| Rembobinage | Plus lent | Plus rapide |
Principale prise de recul: Utilisez Git Flow pour des workflows structurés et plus lents, et TBD pour la vitesse et la flexibilité. Les deux nécessitent des pipelines CI/CD solides pour réussir.
29 - GitFlow vs. Développement basé sur le tronc : Gestion …
Flux Git Principes de flux de travail

Le flux Git organise le développement à l'aide de cinq types de branches : main, develop, feature, release, et hotfix. Cette structure aide à gérer les mises à jour et le développement parallèle de manière efficace.
Structure de branches Git Flow
| Type de branche | But | Cible de fusion |
|---|---|---|
| Principal | Contient des code prêts à la production | N/A |
| Développement | Intègre des fonctionnalités ; sert de base pour les branches de fonctionnalités | N/A |
| Fonctionnalité | Utilisé pour la construction de fonctionnalités individuelles ; créé à partir de develop | développement |
| Sortie | Prépare la version finale et la mise en test ; créé à partir de développement | main & développement |
| Correctif | Répare rapidement les problèmes de production ; créé à partir de main | main & développement |
Avantages du flux Git
- Permet de développer plusieurs fonctionnalités en même temps sans causer de conflits.
- Les branches de version fournissent un espace dédié pour la mise en test finale et la préparation de la version, tout en gardant la développement branche ouverte pour le travail en cours.
- Corrigement de chaud Les branches facilitent la résolution des problèmes de production rapidement sans interrompre les autres tâches de développement.
Inconvénients de Git Flow
- Complexité de la gestion des branches : La gestion de plusieurs branches actives peut rendre la fusion plus difficile.
- Déploiement plus lent : Le processus de mise en production formel peut ralentir les déploiements par rapport à des workflows plus simples.
- Entretien accru : Chaque branche nécessite sa propre configuration de pipeline, ce qui ajoute au fardeau d'entretien.
Ce workflow convient mieux aux projets nécessitant un contrôle de version strict, plusieurs pistes de mise en production ou une conformité aux réglementations. Nous allons ensuite explorer comment cela se compare à l'approche simplifiée du développement basé sur le tronc.
Bases du Développement Basé sur le Tronc
Le Développement Basé sur le Tronc (TBD) tourne autour d'une seule branche principale, souvent appelée tronc ou main. Cette approche s'aligne étroitement sur les pratiques DevOps et l'intégration continue.
Structure de Branches Basée sur le Tronc
Dans un workflow TBD typique, vous rencontrerez ces types de branches :
| Type de Branch | Objectif | Durée de vie |
|---|---|---|
| Tronc/Main | Branch centrale avec des code prêts à la production | Permanent |
| Branches de Fonctionnalités | Branches temporaires pour des changements individuels | Courte durée |
| Branches de Lancement | Utilisé pour les dernières retouches avant une mise à jour | Temporaire |
Les développeurs intègrent régulièrement de petites modifications incrémentales dans la branche principale - souvent plusieurs fois par jour. Cela encourage les tests continus et aide à résoudre les conflits rapidement.
Avantages de la branche principale
Le TBD apporte plusieurs avantages aux équipes travaillant avec CI/CD et DevOps :
- Moins de conflits de fusion : Les merges réguliers gardent les conflits gérables.
- Retour d'information plus rapide : Les builds automatisés s'exécutent avec chaque merge, détectant les bogues tôt.
- Pipelines plus simples : Une seule branche réduit la complexité des ensembles CI/CD.
- Collaboration d'équipe plus efficace : Un tronc partagé garantit que tout le monde reste aligné.
Cette structure crée un flux de travail simplifié, préparant ainsi la scène pour une comparaison avec Git Flow dans la prochaine section.
Limitations du Tronc Basé
Même si TBD a ses forces, il présente également des défis que les équipes doivent relever :
| Changement | Impact | Comment y remédier |
|---|---|---|
| Code Stabilité | Risque de modifications de rupture affectant la branche principale | Utiliser des tests automatisés solides |
| Coordination de l'équipe | Le travail en chevauchant peut causer des perturbations | Fiez-vous aux drapeaux de fonctionnalité et aux commits fréquents et petits |
| Courbe d'apprentissage | Passer d'arbres de branches longues | Proposez une formation et introduisez progressivement |
| Problèmes de scaling | Les merges fréquents peuvent submerger les grandes équipes | Imposer des revues approfondies code |
Le succès de TBD nécessite des tests automatiques solides et une communication ouverte au sein de l'équipe.
Git Flow vs. Trunk-Based: Comparaison directe
Voici comment Git Flow et le développement basé sur le tronc se valent en termes clés :
Tableau de comparaison des fonctionnalités
| Aspect | Git Flow | Développement basé sur la branche principale |
|---|---|---|
| Complexité des branches | Plusieurs branches longues | Une seule branche principale avec des branches de courte durée |
| Fréquence de mise en production | Mises en production planifiées | Déploiement continu |
| Taille de l'équipe | S'adapte bien aux équipes plus grandes | Mieux adapté pour les équipes plus petites |
| Code Processus de revue | Évaluations formelles lors des fusion de branches | Évaluation continue de petites modifications fréquentes |
| Exigences de test | Concentration sur les tests fin de cycle | Fortes dépendances aux tests automatisés |
| Courbe d'apprentissage | Plus complexe en raison de plusieurs branches | Flux de travail plus simple, mais nécessite des tests solides |
| Risque de déploiement | Moindre risque avec des lancements étalés | Plus grand risque avec des mises à jour fréquentes |
| Temps de récupération | Procédures de roulage plus lentes | Capacités de reversion plus rapides |
Quand utiliser chaque workflow
Git Flow Git Flow est idéal pour les projets d'entreprise qui nécessitent des sorties structurées et versionnées. Il convient bien aux équipes gérant plusieurs versions prises en charge et aux projets avec des besoins de QA ou de conformité formels.
Développement basé sur la branche principale Cela fonctionne le mieux pour les équipes et les projets qui donnent la priorité à la vitesse et à la flexibilité, comme :
- Plateformes SaaS nécessitant des mises à jour rapides
- Équipes avec des pipelines CI/CD solides
- Projets soutenus par des tests automatisés fiables
- Flux de déploiement continu ou des mises à jour fréquentes
- Projets d'applications mobiles nécessitant des mises à jour régulières
Certaines équipes combinent même les deux méthodes : l'utilisation du développement basé sur le tronc pour les services de base et Git Flow pour les projets avec des trajectoires de libération formelles.
Prochainement : Comment configurer les pipelines CI/CD pour l'une ou l'autre approche.
Configuration du pipeline CI/CD
Configuration du pipeline CI/CD Git Flow
- Pipeline de la branche de développementExécute les tests unitaires, les tests d'intégration, code les vérifications de qualité, la vérification de la construction et le déploiement dans l'environnement de développement.
- Pipeline de la branche de libérationExécute l'ensemble du jeu de tests, les scans de sécurité, construit un candidat de libération et déploie dans l'environnement de pré-production.
- Pipeline de la branche principaleExécute les tests de validation, gère la version, crée la construction de production, déploie dans la production et tag le libération.
Configuration du pipeline CI/CD Trunk-Based
- Pipeline de la branche de fonctionnalité: Se concentre sur les tests unitaires rapides, les vérifications de style code, la vérification de la construction et le déploiement dans un environnement de prévisualisation.
- Pipeline de Branch Principale: Couvre les tests automatisés approfondis, les scans de sécurité, la création de la construction de production, le déploiement progressif et les fonctionnalités de retrait automatique.
Capgo Intégration CI/CD

Ajouter des mises à jour en direct sur les airs à n'importe quel CI/CD, Capgo peut être intégré de manière fluide :
Capgo fonctionne avec GitHub Actions, GitLab CI, et Jenkins To activer les mises à jour en temps réel, les déploiements étalés et les annulations instantanées dans les deux pipelines Git Flow et Trunk-Based. Il répond aux exigences d'Apple et Google tout en offrant une prise en charge pour les déploiements cloud et auto-hébergés. [1].
Résumé et recommandations
Choisissez votre flux de travail en fonction du niveau de maturité de votre équipe et de votre CI/CD en utilisant le tableau ci-dessous :
| Scénario | Git Flow | Trunk-Based |
|---|---|---|
| Taille de l'équipe | 50+ développeurs | Moins de 50 développeurs |
| Fréquence de publication | Une fois par semaine ou par mois | Plusieurs fois par jour ou en temps réel |
| Testing & QA | Cycles de test traditionnels | Focus sur le test automatisé |
| Modèle de déploiement | Multi-version, traditionnel | Cloud-native, containerisé |
| Tolérance au risque | Ensembles réglementés, conservateurs | Feedback rapide, progressif |
- Commencez par le développement en tronc dans les petites équipes, puis étendez-le aux groupes plus importants. Assurez-vous que votre pipeline CI/CD est entièrement automatisé avant de passer à l'étape suivante.
- Maintenez des revues cohérentes code et utilisez les interrupteurs de fonction dans les deux workflows. Alignez les configurations de votre pipeline avec le flux de travail que vous sélectionnez.
Certains équipes peuvent mélanger ces approches - en utilisant Git Flow pour les mises à jour majeures tout en exploitant le développement en tronc pour la livraison de fonctionnalités. Quel que soit le chemin que vous prenez, le succès dépend de l'intégration de CI/CD de manière appropriée, de l'automatisation des tests et de garder l'équipe sur la même page.
Continuez de Git Flow vs Trunk-Based pour CI/CD
Si vous utilisez Git Flow vs Trunk-Based pour CI/CD pour planifier l'automatisation de CI/CD, connectez-le avec Capgo CI/CD pour le flux de travail du produit dans Capgo CI/CD, Capgo Builds natifs pour le flux de travail du produit dans Capgo Builds natifs, Capgo Intégrations pour le flux de travail du produit dans Capgo Intégrations, Intégration CI/CD pour le détail d'implémentation dans Intégration CI/CD, et GitHub Actions d'intégration pour les détails d'implémentation dans GitHub Actions d'intégration.