$_
StemLegacy
Phase 3Git en local

#11 Les branches

branch, checkout, merge

C'est quoi une branche ?

Une branche est comme une timeline parallèle pour votre code. Elle vous permet de travailler sur une fonctionnalité ou une correction sans toucher au code principal.

Par défaut, Git crée une branche appelée main. Quand vous créez une nouvelle branche, vous partez d'une copie de l'état actuel et vous pouvez faire des modifications indépendantes.

git branch -- Lister et créer des branches

Pour voir les branches existantes, utilisez git branch. L'astérisque * indique la branche active :

Lister les branches
$ git branch
* main

Pour créer une nouvelle branche :

Créer une branche
$ git branch nouvelle-feature
$ git branch
* main
  nouvelle-feature

Attention : git branch nom crée la branche mais ne vous y déplace pas.

git checkout -- Changer de branche

Pour basculer sur une autre branche, on utilise git checkout :

Changer de branche
$ git checkout nouvelle-feature
Switched to branch 'nouvelle-feature'

Le raccourci git checkout -b permet de créer et basculer en une seule commande :

Créer et basculer
$ git checkout -b fix-bug
Switched to a new branch 'fix-bug'

Travailler sur une branche

Une fois sur votre branche, vous travaillez normalement : modifier des fichiers, faire des git add et des git commit. Ces commits n'affectent que la branche courante.

Workflow typique
$ git checkout -b ma-feature
# ... modifier des fichiers ...
$ git add .
$ git commit -m "Ajouter ma nouvelle feature"

git merge -- Fusionner les branches

Quand votre travail sur une branche est terminé, vous la fusionnez dans la branche principale. On se place d'abord sur la branche cible, puis on fusionne :

Fusionner une branche
$ git checkout main
Switched to branch 'main'

$ git merge nouvelle-feature
Updating a1b2c3d..d4e5f6g
Fast-forward
 app.js | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Ici, Git réalise un fast-forward : il avance simplement le pointeur de main car il n'y a pas de divergence. Si les deux branches ont évolué différemment, Git crée un merge commit.

Récapitulatif

Résumé
git branch                    # Lister les branches
git branch nom                # Créer une branche
git checkout nom              # Basculer sur une branche
git checkout -b nom           # Créer + basculer
git merge nom                 # Fusionner une branche

À vous de jouer

Essayez de créer des branches, de basculer entre elles et de les fusionner dans le terminal ci-dessous.

terminal — bash
user@stemlegacy:~/mon-projet$