Déploiement
Déploiement • Chapitre 10 : Déploiement avec Git et GitHub

Gestion des branches

Isolez la production stable du travail de développement quotidien grâce aux branches Git. Adoptez la stratégie Trunk-Based ou GitHub Flow et découvrez la puissance des environnements de prévisualisation (Preview Deployments).

🌲
Branche main Sacrée

Reflète en permanence la version actuellement en ligne chez les utilisateurs finaux.

🌿
Feature Branches

Branches éphémères (feature/panier, fix/auth) créées pour développer une tâche spécifique.

🔍
Preview Deployments

Chaque Pull Request génère automatiquement une URL dédiée pour tester la fonctionnalité.

🧪
Branche Staging

Environnement de pré-production partagé pour valider les versions avec les équipes produit.

git-branching-workflow.sh
# 1. Partir de la branche principale à jour
$ git checkout main
$ git pull origin main

# 2. Créer une branche dédiée à une nouvelle fonctionnalité
$ git checkout -b feature/nouveau-moyen-paiement
Switched to a new branch 'feature/nouveau-mouveau-paiement'

# 3. Effectuer vos développements, tests et commits
$ git add src/app/payment/
$ git commit -m "feat(payment): integrate Apple Pay button"

# 4. Pousser la branche vers GitHub pour ouvrir une Pull Request
$ git push -u origin feature/nouveau-moyen-paiement
Total 12 (delta 2), done.
remote: Create a pull request for 'feature/nouveau-moyen-paiement' on GitHub by visiting:
remote:   https://github.com/organisation/learnweb-app/pull/new/feature/nouveau-moyen-paiement
# ⚡ Vercel génère instantanément : https://learnweb-app-git-feature-apple-pay.vercel.app

Guide Approfondi & Architecture Système

1. Le Rôle Fondamental des URLs de Preview

Avant l'ère des branches modernes :

Pour faire valider un design à un client ou à un testeur QA, il fallait soit l'inviter devant l'écran du développeur, soit écraser le serveur de test commun.

Aujourd'hui, chaque push sur une Feature Branch génère automatiquement une URL publique unique et sécurisée. Le client peut tester la nouvelle fonctionnalité sur son smartphone sans impacter le site de production !

2. Règles de Protection de la Branche Principale

Pour empêcher tout développeur maladroit d'écraser la production :
  1. Activez Require a pull request before merging dans les réglages GitHub.
  2. Exigez au moins une validation par un relecteur senior (Code Review).
  3. Exigez que tous les tests automatiques (Status Checks) soient au vert avant d'autoriser le bouton Merge.

Tableau Récapitulatif : Les Branches et leurs Environnements Dédiés

Branche GitEnvironnement AssociéBase de Données ConnectéePublic Cible
main (ou master)Production (learnweb.com)BDD de Production réelleClients et visiteurs du monde entier
staging / developPréproduction (staging.learnweb.com)BDD de Recette (données anonymisées)Équipe QA, chefs de projet, testeurs internes
feature/*Preview éphémère (hash-dpl.vercel.app)BDD de dev ou Mock d'APIDéveloppeur, designers et relecteurs de code