Git & GitHub Leçon 4
Les branches
Travailler sur une nouvelle fonctionnalité à part, puis la fusionner, et gérer un conflit.
À la fin de cette leçon, tu sauras
- Créer une branche et passer de l'une à l'autre
- Fusionner une branche avec git merge
- Résoudre un conflit simple
Pourquoi des branches ?
Une branche est une ligne de développement parallèle. Tu veux ajouter un formulaire de contact sans risquer de casser le site qui marche ? Tu crées une branche, tu travailles dessus tranquillement, et tu la fusionnes dans main seulement quand tout fonctionne.
git branch # liste les branches (* = celle où tu es)
git switch -c formulaire # crée la branche « formulaire » et s'y place
# … tu modifies, tu fais des commits …
git switch main # revient sur mainQuand tu changes de branche, Git met à jour tes fichiers pour qu'ils correspondent à cette branche. Les commits d'une branche n'apparaissent pas dans les autres tant qu'on ne les a pas fusionnés.
Fusionner
git switch main
git merge formulaire
git branch -d formulaire # supprime la branche, devenue inutileOn se place sur la branche qui doit recevoir les modifications, ici main, puis on fusionne.
Les conflits
Si la même ligne a été modifiée différemment dans les deux branches, Git ne peut pas choisir à ta place : c'est un conflit. Il marque l'endroit dans le fichier :
<<<<<<< HEAD
<h1>Bienvenue sur mon site</h1>
=======
<h1>Bonjour et bienvenue</h1>
>>>>>>> formulaireTu gardes la bonne version (ou un mélange des deux), tu supprimes les lignes <<<<<<<, ======= et >>>>>>>, puis tu termines avec git add et git commit.
Astuce : dans les anciens tutoriels, tu verras git checkout -b au lieu de git switch -c. Les deux marchent, switch est plus récent et plus clair.
À toi de jouer
Tape dans le terminal les commandes pour :
- créer une branche
mode-sombreet t'y placer ; - préparer tous les fichiers modifiés et faire un commit ;
- revenir sur
main; - fusionner
mode-sombredansmain.
- La branche mode-sombre est créée et activée
- Les fichiers sont préparés et commités
- Retour sur main
- mode-sombre est fusionnée
- La fusion se fait depuis main
Bravo, toutes les consignes sont réussies !
Bloqué ? Voir une solution
git switch -c mode-sombre
git add .
git commit -m "Ajoute le mode sombre"
git switch main
git merge mode-sombre