Branches et fusion
C'est quoi une branche ?
Imagine que tu travailles sur ton site. Tu veux ajouter une nouvelle fonctionnalité — disons un formulaire de contact. Mais tu veux garder ton site en état de marche pendant que tu développes.
Une branche, c'est une copie parallèle de ton code. Tu travailles dessus sans toucher à la version principale. Quand c'est prêt et que ça marche, tu fusionnes.
Pense à une branche comme à un cahier de brouillon. Tu écris dessus sans abîmer le document original. Quand c'est bon, tu recopies dans le document principal.
La branche main
Par défaut, ton projet a une branche : main.
C'est la branche principale. Elle doit toujours contenir du code qui fonctionne.
On ne travaille pas directement dessus — on crée des branches pour ça.
Créer et changer de branche
# Voir toutes les branches (* = branche actuelle)
git branch
# * main
# Créer une nouvelle branche
git branch formulaire-contact
# Changer de branche
git checkout formulaire-contact
# Raccourci : créer ET changer en une commande
git checkout -b formulaire-contact
Avec Git 2.23+, tu peux utiliser git switch à la place de git checkout
pour changer de branche. Plus clair : git switch -c nouvelle-branche pour créer + changer.
Travailler sur une branche
Une fois sur ta nouvelle branche, tu travailles normalement.
Les commits que tu fais restent sur cette branche. La branche main n'est pas touchée.
# Sur la branche formulaire-contact
# Tu modifies contact.html, tu commites...
git add contact.html
git commit -m "Ajout formulaire de contact"
# Revenir sur main — contact.html comme avant !
git checkout main
Fusionner avec git merge
Ta fonctionnalité est prête. Tu veux l'intégrer dans main.
C'est le merge (fusion).
Important : tu dois être sur la branche qui reçoit le merge.
Pour intégrer dans main, sois sur main.
# 1. Revenir sur main
git checkout main
# 2. Fusionner la branche dans main
git merge formulaire-contact
# Updating 12bc890..a3f2c1b
# Fast-forward
# contact.html | 20 +++++++++++
# 3. Supprimer la branche si on n'en a plus besoin
git branch -d formulaire-contact
Les conflits de fusion
Parfois deux branches modifient la même ligne du même fichier. Git ne sait pas quelle version garder. Il crée un conflit.
# Git marque le conflit dans le fichier
<<<<<<< HEAD
<h1>Titre version main</h1>
=======
<h1>Titre version branche</h1>
>>>>>>> ma-branche
# Tu choisis ce que tu gardes, tu supprimes les marqueurs
# Puis tu fais : git add + git commit
Les conflits font peur au début. Ils sont normaux. Tu ouvres le fichier,
tu choisis quelle version garder, tu supprimes les lignes de marqueurs (<<<, ===, >>>),
tu sauvegardes, tu fais git add puis git commit.
- Une branche = une copie parallèle de ton code pour travailler sans risque.
git checkout -b nom-branchecrée et bascule sur une nouvelle branche.git branchliste les branches. L'étoile = branche actuelle.git merge nom-branchefusionne une branche dans la branche courante.- En cas de conflit : ouvrir le fichier, choisir, supprimer les marqueurs, add + commit.