Afficher l'historique
Depuis notre première prise en main de Git, nous avons créé des branches, effectué des commits et fusionné ce que nous avons développé dans les branches. Chaque pas en avant dans notre travail est ainsi matérialisé dans un commit. Tôt ou tard nous allons nous demander comment nous avons fait exactement pour en arriver là.
Un peu d'histoire appliquée
Commençons par un exemple simple. Retournez dans le répertoire
atelier-08 :
Le dépôt a l'air propre :
Il ne contient que la seule branche master :
Dans sa configuration par défaut, la commande git log affiche tous les
commits de la branche courante. Le commit le plus récent s'affiche en
premier, suivi du commit parent, et ainsi de suite :
$ git log
commit 41e6de1fca2c6dac37af6fe21642f836ebb59b91 (HEAD -> master)
Author: Nicolas Kovacs <info@microlinux.fr>
Date: Fri Jan 27 09:16:48 2023 +0100
Peaufinage de la recette de sauce bolognaise
commit 08de09960b9ee5e1882aa9f10c9096b2a641634e
Author: Nicolas Kovacs <info@microlinux.fr>
Date: Fri Jan 27 09:15:32 2023 +0100
Ajout d'une recette de sauce bolognaise
commit ad07c4d2b08409f29315edf5e8c3a514567d74d2
Author: Nicolas Kovacs <info@microlinux.fr>
Date: Fri Jan 27 09:13:19 2023 +0100
Ajout d'un fichier RECETTES
Chaque commit est identifié grâce à une saucisse hexadécimale indigeste à 40 caractères. En règle générale, nous n'avons pas besoin d'autant de caractères pour identifier clairement un commit. Il se trouve que les sept premiers caractères de l'ID suffisent amplement :
$ git log --abbrev-commit
commit 41e6de1 (HEAD -> master)
Author: Nicolas Kovacs <info@microlinux.fr>
Date: Fri Jan 27 09:16:48 2023 +0100
Peaufinage de la recette de sauce bolognaise
commit 08de099
Author: Nicolas Kovacs <info@microlinux.fr>
Date: Fri Jan 27 09:15:32 2023 +0100
Ajout d'une recette de sauce bolognaise
commit ad07c4d
Author: Nicolas Kovacs <info@microlinux.fr>
Date: Fri Jan 27 09:13:19 2023 +0100
Ajout d'un fichier RECETTES
Vous n'avez peut-être pas besoin de toutes ces infos sur l'auteur et la date du commit. Dans ce cas, on peut faire encore plus bref :
$ git log --abbrev-commit --pretty=oneline
41e6de1 (HEAD -> master) Peaufinage de la recette de sauce bolognaise
08de099 Ajout d'une recette de sauce bolognaise
ad07c4d Ajout d'un fichier RECETTES
Bien évidemment rien ne vous empêche d'utiliser l'option --pretty=oneline
toute seule sans l'option --abbrev-commit, mais vous vous retrouverez
avec des identifiants à 40 caractères.
Cette combinaison d'options est tellement populaire qu'elle existe sous une forme compacte :
$ git log --oneline
41e6de1 (HEAD -> master) Peaufinage de la recette de sauce bolognaise
08de099 Ajout d'une recette de sauce bolognaise
ad07c4d Ajout d'un fichier RECETTES
L'historique et les branches
À présent, rendez-vous dans le répertoire atelier-12/hello. Vous ne vous
souvenez plus trop à quoi correspond ce dépôt Git ? Faisons donc notre
propre recherche. Affichez d'abord l'état du dépôt :
Est-ce que nous avons des branches dans ce dépôt ?
J'ai dit plus haut que dans sa configuration par défaut, git log affiche tous
les commits de la branche courante dans un ordre chronologique inverse.
Voyons à quoi cela correspond dans la pratique :
$ git log --oneline
89211a3 (HEAD -> master) Peaufinage du script initial
bebe769 Commit initial
$ git switch hello-cow
Switched to branch 'hello-cow'
$ git log --oneline
477d1a0 (HEAD -> hello-cow) Implémentation d'une vache fatiguée
d268724 Premier jet de la vache qui dit bonjour
bebe769 Commit initial
$ git switch hello-figlet
Switched to branch 'hello-figlet'
$ git log --oneline
8db1b22 (HEAD -> hello-figlet) Premier jet avec des majuscules ASCII
bebe769 Commit initial.
$ git switch master
Switched to branch 'master'
Un peu compliqué, tout ça. Et pas très parlant non plus.
Est-ce qu'il n'y aurait pas moyen de voir en un coup d'œil tous les commits
dans toutes les branches ? Oui, en ajoutant les deux options --all et
--graph :
$ git log --oneline --all --graph
* 477d1a0 (hello-cow) Implémentation d'une vache fatiguée
* d268724 Premier jet de la vache qui dit bonjour
| * 89211a3 (HEAD -> master) Peaufinage du script initial
|/
| * 8db1b22 (hello-figlet) Premier jet avec des majuscules ASCII
|/
* bebe769 Commit initial
-
L'option
--allaffiche l'historique de toutes les branches. -
L'option
--graphse charge d'afficher les commits sous forme graphique.
À vous de jouer !
-
Jetez un œil dans le dépôt Git
atelier-15/hello. -
Quel est l'état du dépôt ?
-
Est-ce qu'il y a des branches ?
-
Retracez l'historique du dépôt avec la commande
git loget les options qui vont bien. -
Expliquez l'historique du dépôt avec vos mots.
