Gestion des Branches

Présentation

Les branches permettent de travailler sur des idées ou des corrections séparément, sans modifier directement la version principale du projet. Une fois les modifications terminées, il est possible de les combiner avec la branche principale pour intégrer les changements.

Créer une nouvelle branche

Création

Pour créer une nouvelle branche, utilisez la commande suivante :


                    git branch <nomDeLaBranche>
                

Cette commande crée une nouvelle branche, mais ne vous y bascule pas automatiquement. Pour commencer à travailler dessus, vous devez changer de branche.

Changer de branche

Pour passer à une branche existante, utilisez :


                    git checkout <nomDeLaBranche>
                

Ou avec la commande moderne :


                    git switch <nomDeLaBranche>
                

Depuis Git 2.23, une alternative plus moderne et intuitive à checkout est :


                    git switch <nomDeLaBranche>
                

Créer et basculer sur une nouvelle branche

Pour créer une nouvelle branche et y basculer directement, utilisez :


                    git checkout -b <nomDeLaBranche>
                

Ou avec la commande moderne :


                    git switch -c <nomDeLaBranche>
                

Lister les branches

Pour voir toutes les branches de votre projet, tapez :


                    git branch
                

La branche courante sera marquée par un astérisque *.

Fusionner une branche

Une fois le travail terminé dans une branche, vous pouvez la fusionner avec une autre, généralement avec la branche principale. Historiquement, cette branche était nommée master, mais aujourd'hui, pour des raisons d'inclusivité, elle est souvent appelée main, notamment sur des plateformes comme GitHub...

Pour réaliser une fusion, il faut d'abord basculer sur la branche cible, celle dans laquelle on souhaite intégrer les changements provenant d'une autre branche. Dans l'exemple suivant, on fusionne les éléments présents dans la branche nommée <nomDeLaBranche> avec la branche principale nommée master :


                    git switch master
                

Ensuite, réalisez la fusion en intégrant les modifications de la branche souhaitée dans la branche sur laquelle vous êtes actuellement positionné :


                    git merge <nomDeLaBranche>
                

Supprimer une branche

Après avoir fusionné une branche et si elle n'est plus nécessaire, vous pouvez la supprimer :


                    git branch -d <nomDeLaBranche>
                

Pour forcer la suppression d'une branche qui n'a pas été fusionnée (attention aux pertes potentielles), utilisez :


                    git branch -D <nomDeLaBranche>
                

Exercices

Exo-branches-1

  1. Créez un dossier nommé git-exo-branches.
  2. Initialisez un dépôt Git
  3. Créez un fichier README.md à la racine du projet.
  4. Ajoutez le contenu suivant # exo-gestion-des-branches. dans le fichier README.md.
  5. Ajoutez le fichier à la zone de préparation.
  6. Réalisez un commit avec le message suivant "Initial commit".
  7. Visualisez le commit.

Exo-branches-2

  1. Créez une branche nommée menu-hamburger.
  2. Affichez la liste des branches et vérifiez sur laquelle vous vous trouvez.
  3. Basculez sur la branche menu-hamburger.
  4. Affichez la liste des branches et vérifiez sur laquelle vous vous trouvez.
  5. Créez un fichier menu-hamburger.js à la racine du projet.
  6. Ajoutez le fichier à la zone de préparation.
  7. Réalisez un commit avec le message suivant "init menu hamburger".
  8. Visualisez le commit.

Exo-branches-3

  1. Arrangez-vous pour pouvoir afficher votre éditeur de code avec les fichiers du projet visible ainsi que le terminal.
  2. Basculez sur la branche principale master ou main tout en observant votre éditeur de code.
  3. Le fichier menu-hamburger.js que vous avez commit à la branche menu-hamburger devrait disparaitre devant vos yeux ébahis.
  4. Fusionnez le branche principale master ou main avec la branche menu-hamburger tout en observant votre éditeur de code.
  5. Le fichier menu-hamburger.js est de retour!
  6. Supprimez la branche menu-hamburger.
  7. Listez les branches pour vous assurez que la branche menu-hamburger a bien été effacée.