🎯 Objectifs de ce chapitre
À la fin de ce chapitre, tu seras capable de :
- Comprendre le concept de branches dans Git
- Créer et naviguer entre les branches
- Travailler sur plusieurs fonctionnalités en parallèle
- Fusionner des branches avec
git merge - Comprendre et résoudre les conflits de base
- Utiliser un workflow de branches efficace
Pourquoi les branches ?
Les branches te permettent de travailler sur plusieurs choses en même temps sans tout casser. C'est comme avoir plusieurs versions de ton projet qui coexistent !
🌿 Comprendre le concept de branches
Analogie : L'arbre généalogique de ton code
Imagine que chaque commit est une personne dans un arbre généalogique. Les branches sont différentes lignées familiales qui partagent des ancêtres communs mais évoluent séparément.
Visualisation des branches
Branche principale (main/master)
C'est la branche par défaut, celle qui contient la version stable de ton projet. On ne travaille généralement pas directement dessus.
Branches de fonctionnalité (feature branches)
Branches temporaires pour développer de nouvelles fonctionnalités, réparer des bugs, ou expérimenter.
Nommage des branches
Utilise des noms descriptifs :
feature/ajout-panier
fix/correction-bug-login
docs/amelioration-readme
Avantages des branches
- 🚀 Développement parallèle : Plusieurs personnes peuvent travailler en même temps
- 🛡️ Sécurité : La branche main reste toujours stable
- 🧪 Expérimentation : Teste des idées sans risque
- 🔧 Isolation : Chaque fonctionnalité est développée séparément
🛠️ Manipulation des branches
Maintenant, voyons comment créer et gérer les branches en pratique.
📋 Voir les branches
git branch
Affiche toutes les branches locales. L'astérisque (*) indique la branche active.
🌿 Créer une branche
git branch nouvelle-fonctionnalite
Crée une nouvelle branche à partir de la position actuelle.
🔀 Changer de branche
git checkout nouvelle-fonctionnalite
Se déplace vers la branche spécifiée.
⚡ Créer et changer
git checkout -b nouvelle-fonctionnalite
Crée une nouvelle branche ET se déplace dessus (très pratique !).
Pratique guidée : Crée ta première branche
Dans ton projet, assure-toi d'être sur la branche main :
git status
Tu devrais voir "Sur la branche main".
Crée une branche pour une nouvelle fonctionnalité
git checkout -b ajout-fonctionnalite
Vérifie que tu as changé de branche :
git status
Tu devrais voir "Sur la branche ajout-fonctionnalite".
Travaille sur ta nouvelle branche
Crée un nouveau fichier ou modifie un existant :
echo "# Nouvelle fonctionnalité" > fonctionnalite.md
git add fonctionnalite.md
git commit -m "Ajoute le squelette de la nouvelle fonctionnalité"
Retourne sur main
Pour voir que main n'a pas changé :
git checkout main
Le fichier fonctionnalite.md a disparu ! (Il est safe dans ta branche)
git switch - alternative moderne
Git a introduit git switch qui est plus intuitive :
git switch main # Change de branche
git switch -c nouvelle-branche # Crée et change
🔀 Fusionner des branches (merge)
Une fois ton travail terminé sur une branche, il faut la fusionner dans main.
Retourne sur main
git switch main
Assure-toi d'être sur la branche qui va recevoir les changements.
Récupère les derniers changements
git pull
Assure-toi d'avoir la dernière version de main.
Fusionne la branche
git merge ajout-fonctionnalite
Intègre les changements de ta branche dans main.
Pousse les changements
git push
Envoie la version fusionnée sur GitHub.
Types de fusion
Git utilise différents types de fusion selon la situation :
Fast-forward (avance rapide)
Si main n'a pas bougé pendant que tu travaillais sur ta branche, Git peut simplement "avancer" le pointeur main. C'est le cas idéal !
Merge commit (commit de fusion)
Si main a évolué, Git crée un commit spécial qui combine les changements des deux branches.
Supprime la branche fusionnée
Une fois fusionnée, tu peux supprimer la branche :
git branch -d ajout-fonctionnalite
Nettoyage
Supprime les branches fusionnées pour garder ton dépôt propre. Tu peux toujours recréer une branche si besoin !
🚨 Gestion des conflits
Les conflits arrivent quand Git ne peut pas fusionner automatiquement.
Quand les conflits surviennent-ils ?
Quand la même partie d'un fichier a été modifiée différemment sur deux branches que tu essayes de fusionner.
Reconnaître un conflit
Quand tu fais git merge et qu'il y a conflit, Git s'arrête et affiche :
CONFLIT (contenu): Conflit de fusion dans monfichier.txt
Échec de la fusion automatique ; résolvez les conflits puis validez le résultat.
Identifier les conflits
Ouvre le fichier en conflit. Tu verras des marqueurs :
<<<<<<< HEAD
Ceci est le contenu de la branche actuelle (main)
=======
Ceci est le contenu de la branche que tu fusionnes
>>>>>>> ajout-fonctionnalite
Résoudre le conflit
Édite le fichier pour garder la version que tu veux :
Ceci est la version finale que je veux garder
Supprime tous les marqueurs de conflit (<<<<<<, =======, >>>>>>).
Finaliser la fusion
Une fois tous les conflits résolus :
git add monfichier.txt
git commit -m "Résolution du conflit de fusion"
Git crée le commit de fusion.
Outils de résolution de conflits
Les éditeurs modernes (VSCode, GitHub Desktop) ont des outils visuels pour résoudre les conflits plus facilement.
🎯 Workflow de branches recommandé
Workflow simple pour débutant
- Commence sur main :
git switch mainetgit pull - Crée une branche :
git switch -c ma-fonctionnalite - Travaille : Fais tes commits normalement
- Retourne sur main :
git switch mainetgit pull - Fusionne :
git merge ma-fonctionnalite - Pousse :
git push - Nettoie :
git branch -d ma-fonctionnalite
Bonnes pratiques
- 🎯 Une branche = une fonctionnalité
- 📝 Branches courtes (quelques jours max)
- 🔄 Main à jour : Toujours fusionner depuis une main à jour
- 🧹 Nettoyer : Supprimer les branches fusionnées
✅ Résumé du chapitre
Ce que tu as accompli
- ✅ Compris le concept de branches et leur utilité
- ✅ Créé et navigué entre les branches
- ✅ Travaillé en parallèle sur différentes fonctionnalités
- ✅ Fusionné des branches avec
git merge - ✅ Compris les conflits et comment les résoudre
- ✅ Appris un workflow de branches efficace
Félicitations ! Tu maîtrises maintenant un des concepts les plus puissants de Git. Dans le prochain chapitre, nous verrons comment utiliser les Pull Requests sur GitHub pour une collaboration professionnelle.
Pour t'entraîner
Crée plusieurs branches pour différentes petites fonctionnalités et pratique les fusions. Plus tu pratiques, plus les branches deviendront naturelles !