GIT - 20 Des exemples de branche simple
Dans cette leçon, nous créons et gérons une branche autre que master. Je suis dans le repository test ; dans la vidéo précédente, nous avions un fichier coucou.html modifié — peut-être que cette modification est expérimentale ou qu'elle fait partie d'une future fonctionnalité. Dans tous les cas, le bon réflexe est de l'isoler dans une branche dédiée.
Créer et basculer sur une branche
Listons d'abord les branches existantes :
git branch
On voit uniquement master (en vert, avec un astérisque * : c'est la branche courante). Créons une nouvelle branche test et basculons dessus en une seule commande grâce à -b :
git checkout -b test
L'option -b crée la branche, checkout nous y bascule. Bonus : les modifications en attente dans le working directory sont automatiquement transférées sur la nouvelle branche — pratique quand on réalise qu'on a commencé à coder sur master et qu'on veut isoler ces changements après coup.
Committer sur la nouvelle branche
git add coucou.html
git commit -m "ajout depuis test"
git hist
L'historique montre que HEAD et test pointent vers le nouveau commit, tandis que master est resté en arrière. Pour visualiser les différences entre les deux branches :
git diff test master
Merge en fast-forward et nettoyage
Pour intégrer le travail dans master, on revient dessus et on lance le merge :
git checkout master
git merge test
git branch -d test
git merge test: ici un fast-forward, master avance simplement jusqu'au dernier commit de testgit branch -d test: supprime la branche (devenue inutile après merge)
Une fois fusionnée dans la timeline principale, la branche test n'a plus de raison d'exister — c'était juste une étiquette de timeline.
En résumé
Cette leçon montre comment créer une nouvelle branche Git avec `git checkout -b`, effectuer des modifications et des commits sur cette branche, puis la fusionner avec la branche master via `git merge` et la supprimer. Elle illustre également le concept de fast-forward merge et l'utilisation de `git diff` pour comparer les branches avant fusion.
Points clés
- Créer une branche avec `git checkout -b <nom>` combine la création et le basculement en une seule commande, transférant les modifications en cours vers la nouvelle branche
- Comparer deux branches avec `git diff <branche1> <branche2>` pour visualiser les différences avant de procéder à une fusion
- La fusion en fast-forward (`git merge`) s'effectue automatiquement quand la branche cible n'a pas de commits divergents, appliquant directement les commits de la branche source
- Après fusion, supprimer la branche locale avec `git branch -d <nom>` pour maintenir un répertoire de branche propre
- Utiliser `git checkout <nom-branche>` pour basculer entre branches et `git log` pour vérifier la position du HEAD
Questions fréquentes
Pourquoi utiliser des branches au lieu de travailler directement sur master ?
Les branches isolent les modifications expérimentales ou les développements de nouvelles fonctionnalités du code principal, ce qui permet de travailler sans risque et de valider les changements avant intégration.
Quelle est la différence entre `git checkout -b` et `git branch` suivi de `git checkout` ?
`git checkout -b <nom>` crée la branche ET bascule dessus en une seule commande, tandis que `git branch <nom>` crée seulement la branche sans y basculer. `git checkout -b` est donc plus direct pour commencer à travailler immédiatement.
Que signifie 'fast-forward merge' ?
Un fast-forward merge se produit quand il n'y a pas de commits divergents sur la branche destination : Git avance simplement le pointeur master pour rejoindre le dernier commit de la branche fusionnée, sans créer de commit de fusion.