#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 :
$ git branch
* mainPour créer une nouvelle branche :
$ git branch nouvelle-feature
$ git branch
* main
nouvelle-featureAttention : 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 :
$ git checkout nouvelle-feature
Switched to branch 'nouvelle-feature'Le raccourci git checkout -b permet de créer et basculer en une seule commande :
$ 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.
$ 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 :
$ 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
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.