Jusqu'ici, tout ce que vous avez fait dans mon-premier-site s'est passé sur une seule ligne d'historique, la branche main. C'est confortable pour apprendre, mais peu réaliste : dans un vrai projet, on évite en général de tester une idée directement sur la branche principale. Les branches servent exactement à ça.

Une image pour démarrer, avec sa limite

On explique souvent qu'une branche est « une copie du projet ». C'est une bonne image pour démarrer, mais elle est trompeuse si vous la prenez au pied de la lettre : Git ne duplique aucun fichier sur votre disque quand vous créez une branche. Une branche est en réalité un simple nom, un petit repère qui pointe vers un commit précis. Quand vous ajoutez de nouveaux commits sur cette branche, le repère avance tout seul avec eux. Deux branches peuvent ainsi exister sans qu'aucune copie de fichier n'ait été faite quelque part sur votre ordinateur : ce qui change, ce sont les commits vers lesquels chaque nom pointe.

Changer de branche, avec la commande switch que vous allez utiliser dans un instant, met simplement le contenu de votre dossier de travail en cohérence avec le dernier commit de la branche choisie. C'est ce mécanisme qui donne l'impression d'une bascule complète du projet, alors qu'il ne s'agit que d'un déplacement du repère HEAD, découvert au guide 8, d'un commit vers un autre.

Avant de créer une branche

Vérifiez d'abord que votre dossier de travail est dans un état propre, sans modification non enregistrée : changer de branche avec des modifications en cours peut, selon les cas, échouer ou emporter ces modifications avec vous sur la nouvelle branche, ce qui prête à confusion quand on débute.

Créer une branche pour améliorer le style

Vous voulez retravailler la mise en page de mon-premier-site sans risquer d'abîmer ce qui fonctionne déjà sur main. Créez une branche dédiée, avec un nom qui décrit clairement son objectif.

L'option -c signifie « create » : elle crée la branche et bascule dessus immédiatement, en une seule commande. Sans cette option, git switch seule permet uniquement de basculer vers une branche déjà existante.

Vérifier sur quelle branche vous êtes

Deux commandes permettent de le confirmer. git branch, sans argument, liste toutes les branches locales et marque d'un astérisque celle actuellement active.

git status l'indique aussi, dès sa première ligne.

Modifier et committer sur cette branche

Ouvrez style.css et ajoutez une nouvelle règle, par exemple pour styliser le titre.

Enregistrez, puis committez ce changement, exactement comme vous l'avez déjà fait plusieurs fois.

Remarquez, entre crochets, le nom de la branche ameliorer-style à côté de l'identifiant du commit : ce commit vient bien allonger cette branche précisément, pas main.

Revenir sur main et observer

Basculez maintenant sur main, puis rouvrez style.css dans votre éditeur.

La règle de couleur que vous venez d'ajouter a disparu de style.css. Ce n'est pas une erreur ni une perte : ce commit existe bel et bien, mais uniquement sur la branche ameliorer-style. main pointe toujours vers son dernier commit à elle, sans le changement de style. Retournez sur ameliorer-style avec git switch ameliorer-style et le fichier retrouvera immédiatement sa nouvelle règle : c'est exactement ce comportement, un contenu qui change selon la branche active, qui rend les branches utiles pour isoler un travail en cours.

Bon réflexe

Donnez à vos branches un nom qui décrit ce qu'elles font, comme ameliorer-style plutôt que test ou branche2. Dans quelques semaines, un nom clair vous évitera de devoir rouvrir chaque branche pour vous souvenir de son contenu.

Vérifiez que vous avez compris

Vous êtes sur la branche ameliorer-style, avec un commit qui lui est propre. Si vous créez maintenant un nouveau commit sur main, ce nouveau commit apparaîtra-t-il aussi sur ameliorer-style ?

Non, pas automatiquement. Chaque branche avance indépendamment à partir du moment où elle diverge d'une autre. Un commit créé sur main reste sur main, tant que personne ne demande explicitement de le faire rejoindre ameliorer-style, par exemple avec une fusion. C'est justement le sujet du prochain guide.