Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Créer et changer de branche avec Git

Après cette leçon: Je peux travailler sur une branche et passer d’une branche à l’autre.

Leçon de 55 min12 commandesLab Git et Gitea : apprendre clone, commit et push sur un serveur Git à soi

Tester de nouveaux prix sans toucher aux anciens

Une branche Git est une ligne de commits à part : on y essaie un changement sans toucher à la version qui marche. Elle permet d’essayer une idée, ou de travailler à plusieurs, sans rien casser.

La cafétéria d’une association prépare ses prix de la rentrée. L’ancien tarif reste affiché tant que les nouveaux ne sont pas décidés.

À la fin de cette leçon

Remarque

Je peux travailler sur une branche et passer d’une branche à l’autre.

Mots-clés

MotCe que ça veut direExemple
Brancheune ligne de commits qui avance à partnouveaux-prix
mainle nom habituel de la branche principale
HEADle repère qui dit sur quelle branche vous êtes
Parentle commit qui vient juste avant un autre
Pointele dernier commit d’une branche
Graphele dessin des commits reliés à leurs parents

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une branche est une étiquette sur un commit

Une branche est un nom qui désigne un commit. Quand vous faites un commit, le nom avance avec vous. Les autres branches restent où elles étaient.

La branche principale s’appelle souvent main. Le repère HEAD dit sur quelle branche vous êtes. Chaque commit connaît son parent, le commit juste avant lui.

Comment lire ce dessin

Chaque flèche va d’un commit vers son parent. Ici, le commit 2 a pour parent le commit 1.

La branche main désigne le commit 1. La branche nouveaux-prix désigne le commit 2, et HEAD indique que vous êtes dessus. Les deux branches partagent le commit 1.

Créer le dépôt dans le dossier cafe

Commande
git init -b main cafe

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire l’ancien tarif

Commande
printf 'cafe 1.20\nthe 1.50\n' > cafe/prix.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Choisir le fichier pour le commit

Commande
git -C cafe add prix.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Enregistrer le tarif de la rentrée

Commande
git -C cafe commit -m "Prix de la rentree"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lister les branches

Commande
git -C cafe branch

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

git switch change de branche et de fichiers

git switch -c nom crée une branche et vous y place. Sans -c, git switch nom va sur une branche qui existe déjà.

Changer de branche change aussi le dossier : Git y remet les fichiers de la branche où vous arrivez. Vous allez voir le fichier prix.txt changer de contenu.

Créer la branche nouveaux-prix

Commande
git -C cafe switch -c nouveaux-prix

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire les nouveaux prix

Commande
printf 'cafe 1.30\nthe 1.60\n' > cafe/prix.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Enregistrer les nouveaux prix

Commande
git -C cafe commit -am "Augmenter les prix"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Revenir sur la branche main

Commande
git -C cafe switch main

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lire le fichier sur main

Commande
cat cafe/prix.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Comparer deux branches avec git log

git log nom liste les commits de cette branche, de la pointe jusqu’au premier commit.

Deux points entre deux noms posent une question : main..nouveaux-prix donne les commits de nouveaux-prix que main n’a pas. C’est le travail qui reste à fusionner.

Lire l’historique de nouveaux-prix

Commande
git -C cafe --no-pager log --format=%s nouveaux-prix

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Compter les commits en plus

Commande
git -C cafe rev-list --count main..nouveaux-prix

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une erreur fréquente

Attention

On croit souvent qu’une branche est une copie du dossier. Ce n’est pas vrai : une branche est un simple nom posé sur un commit. Créer une branche ne copie aucun fichier, et c’est pourquoi cela prend un instant.

À propos de ce labo et de sa source: Lab Git et Gitea : apprendre clone, commit et push sur un serveur Git à soi

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.