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

Git : garder et partager les versions

Après cette leçon: Je peux lire l’historique d’un dépôt Git pour savoir qui a changé quoi.

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

Fini les rapport_final_v2_vrai.docx

Git est un outil qui garde l’historique d’un dossier : chaque enregistrement, appelé commit, note ce qui a changé, qui l’a changé et pourquoi. On retrouve ainsi une ancienne version et on travaille à plusieurs sans s’écraser.

Tu as déjà vu un dossier plein de « version finale », « version finale 2 », « version vraiment finale ». Git remplace ce désordre par un seul historique propre.

À la fin de cette leçon

Remarque

Je peux lire l’historique d’un dépôt Git pour savoir qui a changé quoi.

Mots clés

MotCe que ça veut direExemple
Dépôtun dossier dont Git garde l’historique
Commitun point de sauvegarde avec un messageAjoute la liste
Historiquela liste de tous les commits, du plus récent au plus ancien
Brancheune ligne de travail à part, pour essayer sans risque
Dépôt distantune autre copie du dépôt, sur un serveurorigin
Clonercopier un dépôt distant sur son ordinateur
Pousserenvoyer ses commits vers le dépôt distant

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

Un commit est un point de sauvegarde

Un commit enregistre l’état du dossier à un instant. Il porte un message qui dit pourquoi, un auteur et une date.

Tu peux revenir à n’importe quel commit. Et chaque ligne de l’historique répond à trois questions : qui, quand et pourquoi.

Exemple : un devoir en groupe

QuestionSans GitAvec Git
Quelle est la dernière version ?On devine avec le nom du fichierLe commit du haut de l’historique
Qui a changé la conclusion ?Personne ne saitL’auteur est écrit dans le commit
Revenir à hier ?Si quelqu’un a gardé une copieOui, à tout moment
Deux personnes écrivent ensemble ?L’une écrase l’autreGit rassemble les deux travaux

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

La commande git log liste les commits

Le lab contient un dépôt d’exemple, hello-git. On le clone dans un dossier à part, exploration, pour le lire sans rien casser. Les commandes partagent le même terminal : le cd reste actif ensuite.

Puis git log affiche l’historique. Avec --oneline, une ligne par commit.

Clone le dépôt d’exemple

Commande
git clone http://gitea:3000/student/hello-git.git exploration

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.

Entre dans le dossier cloné

Commande
cd exploration

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.

Liste les commits, une ligne chacun

Commande
git --no-pager log --oneline

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.

Affiche l’auteur et le message

Commande
git --no-pager log --format="%an : %s"

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.

Ce que montre l’historique

Il y a deux commits. Chaque ligne du premier Run commence par un code court qui nomme le commit, puis son message.

Le second Run affiche l’auteur : Alan Turing pour « Add a list of visitors », puis Ada Lovelace pour « Start the project with a README ». Les messages sont en anglais, car ce sont ceux du lab. Le plus récent est en haut.

Une branche permet d’essayer sans risque

Une branche est une ligne de travail à part. Tu l’ouvres pour tester une idée. Si elle marche, tu la fusionnes avec la branche principale. Sinon, tu la jettes.

Le dépôt distant sert à partager. On y pousse ses commits et on y tire ceux des autres.

Exemple : les commandes du quotidien

CommandeCe qu’elle faitQuand l’utiliser
git clonecopie un dépôt distantau début, une seule fois
git addprépare un fichier pour le commitaprès avoir changé un fichier
git commitenregistre un point de sauvegardequand une étape marche
git pushenvoie les commits au dépôt distantpour partager son travail
git pullrapporte les commits des autresavant de commencer à travailler

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

Une erreur fréquente

Attention

Beaucoup pensent que Git et GitHub sont la même chose. Git est l’outil qui garde l’historique. GitHub, GitLab et Gitea sont des serveurs qui hébergent des dépôts Git. Ton lab utilise Gitea.

Pour aller plus loin : qui travaille le plus ?

Dans ton devoir, commits_par_auteur compte les commits de chacun. Écris une fonction auteur_le_plus_actif(lignes) qui renvoie le nom de celui qui en a le plus.

Que doit-elle renvoyer quand deux personnes en ont autant ? Décide, puis écris-le en commentaire.

À 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.