Develop Branch est la branche d'intégration principale dans Git Flow où toutes les branches feature terminées sont fusionnées avant la préparation d'une release. Contrairement à main, develop contient les modifications les plus récentes mais pas encore publiées — c'est là que se produit l'intégration quotidienne du code de tous les développeurs de l'équipe. Selon Atlassian, 2024, develop est une branche obligatoire dans Git Flow et fournit un environnement d'intégration stable pour l'équipe.
Points clés
Develop Branch (branche de développement) est une branche de longue durée dans Git Flow qui sert de hub central pour l'intégration du code de tous les développeurs. Les branches feature y sont fusionnées après la fin du développement et la revue de code.
Le code dans develop est toujours dans un état prêt à créer une release, bien qu'il ne soit pas encore déployé en production. Cela signifie que toutes les fonctionnalités dans develop ont passé la revue, les tests et les vérifications d'intégration, mais attendent encore leur cycle de release.
Contrairement à main, où chaque version de code est une release, develop contient un flux continu de modifications. Les commits dans develop apparaissent au fur et à mesure que les branches feature sont fusionnées, ce qui peut se produire plusieurs fois par jour.
Selon Vincent Driessen, 2010, develop est un élément clé d'un modèle de branchement réussi, car il sépare le travail de brouillon des versions prêtes pour la release.
Comprendre les différences entre develop et main est essentiel pour un workflow Git Flow correct. Ces branches ont des fonctions différentes et des exigences de stabilité différentes.
| Caractéristique | Develop | Main / Master |
|---|---|---|
| Objectif | Intégration de nouvelles fonctionnalités | Code de release stable |
| Stabilité | Élevée (après tests) | Maximale (production) |
| Fréquence des commits | Quotidienne (fusion feature) | Par release (toutes les 1 à 4 semaines) |
| Source des branches | De celle-ci sont créées les feature | De celle-ci sont créées les hotfix |
| Fusion | De feature via PR | De release via merge |
La séparation en develop et main permet à l'équipe d'intégrer continuellement du nouveau code sans risquer la stabilité de la version de production. Les développeurs peuvent voir leur code dans develop immédiatement après l'approbation du PR, même avant la release officielle.
Dans le modèle Git Flow, develop occupe une place centrale entre les branches feature (source des modifications) et les branches release (préparation à la release). Comprendre cette hiérarchie est la base d'un branchement efficace.
Cette structure garantit que develop contient toujours le code le plus récent avec toutes les nouvelles fonctionnalités, tandis que main contient uniquement du code de production vérifié. Ceci est particulièrement important pour les projets mobiles avec de longs cycles de révision dans l'App Store et Google Play.
Develop sert de lien central entre les branches feature, release et hotfix. Comprendre les directions de fusion est essentiel pour prévenir les conflits et la perte de commits.
La qualité du code dans develop doit être élevée, mais pas absolue. Contrairement à main, où chaque erreur signifie un hotfix urgent, develop permet des imperfections mineures qui seront corrigées avant la release.
Exigences minimales pour le code avant la fusion dans develop :
Les vérifications automatisées dans le pipeline CI/CD doivent s'exécuter à chaque push dans develop. Si la compilation casse, le développeur responsable doit corriger le problème dans l'heure ou annuler son commit.
La configuration de GitHub Actions pour develop garantit que chaque PR passe par des vérifications automatisées avant la fusion. Un pipeline typique comprend la compilation, les tests et le linting.
# GitHub Actions — vérification de develop après fusion
name: Develop CI
on:
pull_request:
branches: [develop]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Unit tests
run: ./gradlew testDebug
- name: Lint
run: ./gradlew lint
- name: Build
run: ./gradlew assembleDebug
La fusion dans develop doit suivre des règles strictes pour maintenir la stabilité de la branche d'intégration. La violation de ces règles entraîne des conflits, des compilations cassées et une perte de temps pour l'équipe.
La règle du PR à jour est particulièrement importante. Si une branche feature a été créée il y a une semaine et que develop a avancé de 50 commits, la fusion directe pourrait entraîner des conflits qu'il est préférable de résoudre dans le contexte du PR plutôt que dans develop.
Les règles de protection de branche sont des paramètres au niveau de GitHub, GitLab ou Bitbucket qui empêchent les modifications incorrectes dans develop. Elles garantissent que même un push accidentel ne casse pas la branche d'intégration.
Règles de protection recommandées pour develop :
La configuration de la protection de develop prend 10 minutes mais évite des semaines d'indisponibilité liées à une branche d'intégration cassée. Pour les projets mobiles avec des équipes multiplateformes, c'est particulièrement pertinent.
Considérons une journée typique d'un développeur : le matin, il met à jour develop, crée une nouvelle branche feature et, après avoir terminé la tâche, fusionne les modifications dans develop.
# Synchronisation matinale de develop
git checkout develop
git pull origin develop
# Création d'une nouvelle branche feature depuis develop
git checkout -b feature/add-push-notifications
# Travail sur la fonctionnalité...
git add . && git commit -m "Add FCM integration"
# Mise à jour de develop pendant le développement
git fetch origin develop
git rebase origin/develop
# Après approbation du PR — mise à jour du develop local
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications
La commande git pull dans develop effectue deux opérations à la fois : git fetch (récupère les nouveaux commits du serveur) et git merge (les fusionne avec la branche locale). Pour develop, c'est la méthode de synchronisation standard.
Si du code qui a cassé la compilation arrive dans develop, il faut agir rapidement. Chaque heure d'indisponibilité de develop est un travail bloqué pour toute l'équipe de développement.
Si du code qui a cassé la compilation arrive dans develop, utilisez git revert pour créer un nouveau commit qui annule les modifications problématiques. N'utilisez pas git reset dans develop — cela réécrit l'historique que les autres membres de l'équipe possèdent déjà.
# Recherche du commit problématique
git log --oneline develop
# Annulation de commit via revert (sûr)
git revert a1b2c3d
# Envoi de la correction vers develop distant
git push origin develop
# Affichage des modifications dans un commit spécifique
git show a1b2c3d --stat
Questions fréquentes
Pour les projets avec un ou deux développeurs, develop est souvent redondant — main et les branches feature suffisent. Dès que l'équipe passe à 3 personnes ou plus, develop devient nécessaire pour isoler les fonctionnalités inachevées du code de production stable.
Non, les commits directs dans develop sont interdits dans tout projet professionnel. Toutes les modifications passent par une Pull Request avec revue de code et vérifications automatisées. L'exception concerne les modifications administratives du README ou de la configuration CI, mais même celles-ci sont préférables via un PR.
Dans le trunk-based development, il n'y a pas de branche develop séparée — tous les développeurs travaillent dans main avec des branches feature très courtes (1 à 2 jours). C'est une alternative à Git Flow, populaire dans la culture DevOps avec un haut niveau d'automatisation des tests.
Après chaque release, la branche release est fusionnée dans develop pour incorporer toutes les corrections effectuées lors de la préparation de la release. Si cela n'est pas fait, develop divergera du code de release, provoquant des conflits lors de la prochaine release.
Si develop est cassé, un développeur senior crée une branche hotfix à partir du dernier commit stable, corrige le problème et fusionne la correction directement dans develop via un PR avec un statut spécial. Après la récupération, une analyse des causes profondes est effectuée.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi