Prise en main de Git — Chapitre 3 / 4
Les branches
Les branches permettent de travailler sur plusieurs choses en même temps. Sans risquer de casser ce qui fonctionne déjà. Ce chapitre t'explique comment ça marche.
Une branche, c'est quoi ?
Mot clé : branche
Une branche est un nom qui pointe vers un commit. C'est comme un post-it collé sur une page d'un livre. Le post-it dit : "je suis ici". Quand tu ajoutes un nouveau commit, le post-it se déplace sur la nouvelle page.
Beaucoup de gens croient qu'une branche est une copie du code. Ce n'est pas vrai.
Une branche est juste un pointeur. C'est un petit fichier qui contient le hash d'un commit. Créer une branche est instantané. Ça ne prend presque pas de place sur ton disque.
# Chaque branche pointe vers un commit
main → a1b2c3d (commit le plus récent de main)
feature → e4f5g6h (commit le plus récent de feature)
HEAD → main
# HEAD dit : "tu es sur la branche main"
Point important
La branche main n'est pas spéciale. C'est juste un nom. Git la crée par défaut, mais tu pourrais l'appeler autrement. Elle n'a aucun pouvoir particulier.
Pourquoi utiliser des branches ?
Imagine que tu travailles sur un site web. Le site fonctionne bien. Maintenant, tu veux ajouter une nouvelle page.
Si tu travailles directement sur main, tu risques de casser le site. Tes changements en cours ne sont peut-être pas finis.
Avec une branche, tu travailles à part. Le site reste fonctionnel sur main. Quand ta nouvelle page est prête, tu la ramènes dans main.
C'est comme avoir un brouillon. Tu écris sur le brouillon. Quand c'est prêt, tu recopies au propre.
Créer une branche
Mot clé : git branch
La commande git branch sert à gérer les branches. Sans argument, elle affiche la liste des branches. Avec un nom, elle crée une nouvelle branche.
$ git branch
# Affiche toutes les branches
# Le * montre la branche où tu es
* main
feature/header
$ git branch feature/about
# Crée une nouvelle branche appelée feature/about
# Attention : tu restes sur la branche actuelle
Changer de branche
Mot clé : git switch
La commande git switch te permet de changer de branche. Quand tu changes de branche, Git met à jour les fichiers dans ton dossier. Les fichiers correspondent à l'état de la branche choisie.
$ git switch feature/about
# Bascule sur la branche feature/about
# Les fichiers changent pour correspondre à cette branche
$ git switch -c feature/footer
# Crée une nouvelle branche ET bascule dessus
# C'est un raccourci pour : git branch + git switch
L'option -c signifie "create". C'est le raccourci le plus utilisé. Tu crées et tu bascules en une seule commande.
Fusionner : ramener une branche dans main
Mot clé : git merge
Fusionner (merge) signifie combiner le travail de deux branches. En général, tu fusionne ta branche de travail dans main. C'est comme recopier ton brouillon au propre.
Pour fusionner, tu dois d'abord te placer sur la branche qui va recevoir les changements. En général, c'est main.
# Étape 1 : revenir sur main
$ git switch main
# Étape 2 : fusionner la branche
$ git merge feature/about
# Le contenu de feature/about arrive dans main
Deux façons de fusionner
Git peut fusionner de deux façons différentes. Cela dépend de ce qui s'est passé sur les branches.
Cas 1 : Fast-forward (avance rapide)
Cela arrive quand main n'a pas bougé depuis la création de la branche. Git se contente d'avancer le pointeur. Pas besoin de créer un nouveau commit.
C'est comme si tu avais lu les pages 1 à 10 d'un livre, et ton ami a lu les pages 11 à 15. Il suffit de continuer. Pas de travail supplémentaire.
# Avant le merge
A → B (main) → C → D (feature)
# Après le merge : main avance
A → B → C → D (main, feature)
Cas 2 : Merge commit (commit de fusion)
Cela arrive quand les deux branches ont des commits différents. Git crée un nouveau commit qui combine les deux. Ce commit a deux parents.
C'est comme si toi et ton ami avez chacun écrit un chapitre différent. Il faut assembler les deux chapitres pour faire le livre complet.
# Avant : les branches ont divergé
→ C → D (feature)
A → B
→ E (main)
# Après le merge : un commit M avec 2 parents
→ C → D ↘
A → B M (main)
→ E ↗
Visualiser les branches
Il existe une commande très utile pour voir toutes les branches et les commits. Elle dessine un graphe dans le terminal.
$ git log --graph --oneline --all
* f7a8b9c (HEAD → main) Merge branch 'feature'
|\
| * d4e5f6a (feature) Add feature
|/
* a1b2c3d Initial commit
Cette commande montre :
- ●Les commits (chaque ligne avec un *)
- ●Les branches (les noms entre parenthèses)
- ●Les liens entre commits (les lignes |, / et \)
- ●Où tu te trouves (HEAD →)
Bien nommer ses branches
Le nom d'une branche doit expliquer ce que tu fais dessus. Voici les conventions les plus courantes :
feature/nom — pour ajouter une fonctionnalité
Exemple : feature/page-contact
fix/nom — pour corriger un bug
Exemple : fix/menu-mobile
chore/nom — pour la maintenance technique
Exemple : chore/update-dependencies
Pour aller plus loin
Erreurs fréquentes
- ●Oublier de revenir sur
mainavant de fusionner. Tu dois toujours être sur la branche qui reçoit les changements. - ●Créer une branche depuis une autre branche au lieu de
main. Vérifie toujours où tu es avecgit statusavant de créer une branche. - ●Travailler directement sur
main. Crée toujours une branche, même pour un petit changement. C'est plus sûr. - ●Penser qu'une branche est une copie du code. C'est juste un pointeur. Créer 100 branches ne prend presque pas de place.
Ton avis compte
Aide-nous à améliorer cette formation en partageant ton retour.