Afficher les logs des commits de la branche courante :
git log
Afficher les logs des commits de toutes les références (branches, tags, etc.) :
git log --all
Affiche l’ensemble des commits et des messages associés, sous forme d’une pile (dernier en haut). Chaque commit est identifié de manière unique par une empreinte SHA1.
ex :
$ git log commit 33d105abc0e11abb3d10b8aa9efc4c381d288d6d Author: darwinosDate: Tue Jun 12 10:14:10 2018 +0200 Update local repository commit 3c57201603b9d226c1f6d839cfa070d556689f0d Author: darwinos Date: Tue Jun 12 09:04:50 2018 +0100 Create remotefile.txt
Afficher les logs de manière synthétique :
git log --oneline
ex :
$ git log --oneline
33d105a Update local repository
3c57201 Create remotefile.txt
git log --pretty=oneline
Ici la différence avec la commande précédente est que l’empreinte SHA1 de chaque commit est affichée entièrement.
ex :
$ git log --pretty=oneline
33d105abc0e11abb3d10b8aa9efc4c381d288d6d Update local repository
3c57201603b9d226c1f6d839cfa070d556689f0d Create remotefile.txt
Spécifier le nombre de lignes de logs à afficher :
git log -n
ou
git log --max-count=n
Les n plus récents commits seront affichés.
Spécifier la date depuis laquelle afficher les logs :
git log --since='n minutes ago'
ou
git log --after='n minutes ago'
La période de temps peut être précisée en seconds, minutes, days, years, etc.
Spécifier la date jusqu’à laquelle afficher les logs :
git log --until='n minutes ago'
ou
git log --before='n minutes ago'
ex :
$ git log --after='2018-06-06' --before='2018-06-12' --oneline
La période de temps peut être précisée en seconds, minutes, days, years, etc.
Afficher les logs d’un auteur spécifique :
git log --author='authorname'
Afficher les logs sous forme pseudo-graphique (ASCII) :
git log --graph
ex :
$ git --all --oneline log --graph
* 33d105a Update local repository
* 3c57201 Create remotefile.txt
* e9e274e Merge branch 'testing3'
|\
| * f3e8819 Update local repository
| * 27d30a0 Update local repository
| * 3719418 Add testfile.txt
* | e6c7009 Update local repository
* | b8f69df Update local repository
* | ae26402 Update local repository
* | f850923 Modif tempfile.txt
|/
* 3803116 Modif tempfile.txt
* 37acae3 Add tempfile.txt
Afficher les statistiques relatives aux fichiers modifiés : deletions et insertions
git log --stat
ex :
$ git --oneline --stat
* 0214035 Update local repository
| _config.yml | 19 ++++++-------------
| _includes/file01.md | 1 +
| _includes/file02.md | 1 +
| _includes/file03.md | 1 +
| _posts/2018-05-30-1stpost.md | 6 ------
| _posts/2018-05-30-Deuxieme_post.md | 1 -
| _posts/2018-05-30-Premier_post.md | 6 ------
| index.md | 6 +++++-
| 8 files changed, 14 insertions(+), 27 deletions(-)
ou
git log --numstat
ex :
$ git --oneline --numstat
[...]
0214035 Update local repository
6 13 _config.yml
1 0 _includes/file01.md
1 0 _includes/file02.md
1 0 _includes/file03.md
0 6 _posts/2018-05-30-1stpost.md
0 1 _posts/2018-05-30-Deuxieme_post.md
0 6 _posts/2018-05-30-Premier_post.md
5 1 index.md
[...]
Afficher le patch pour chaque fichier modifié de chaque commit :
Les lignes modifiées sont affichées en couleur pour chaque fichier : vert pour les insertions, rouge pour les déletions.
git log -p
Afficher les logs d’une branche spécifique :
git log branchname
Afficher tous les commits qui incluent une modification d’un fichier spécifié :
git log -- filename
Afficher les commits situés entre deux commits spécifiés :
git log oldercommit..newercommit
ex :
$ git log bd7e197..8896f09
$ git log bd7e197..HEAD
$ git log bd7e197..master
$ git log --left-right --graph --cherry-pick testing..master
Afficher les commits différentiels entre deux branches :
git log branche1...branche2
ex :
$ git log testing...master
$ git log master...origin/master
Afficher des logs formatés et personnalisés :
git log --all --pretty=format:'%h %cd %s (%an)' --since='7 days ago'
ex :
$ git log --all --pretty=format:'%h %cd %s (%an)' --since='7 days ago'
33d105a Tue Jun 12 10:14:10 2018 +0200 Update local repository (darwinos)
3c57201 Tue Jun 12 09:04:50 2018 +0100 Create remotefile.txt (darwinos)
e9e274e Mon Jun 11 18:11:16 2018 +0200 Merge branch 'testing3' (darwinos)
e6c7009 Mon Jun 11 18:10:49 2018 +0200 Update local repository (darwinos)
git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
ex :
$ git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
* 33d105a 2018-06-12 | Update local repository [darwinos]
* 3c57201 2018-06-12 | Create remotefile.txt [darwinos]
* e9e274e 2018-06-11 | Merge branch 'testing3' [darwinos]
|\
| * f3e8819 2018-06-11 | Update local repository [darwinos]
git log --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %ad | %s%d [%C(bold blue)%an%Creset]' --graph --date=short
ex :
$ git log --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %ad | %s%d [%C(bold blue)%an%Creset]' --graph --date=short --all
* adc2a9b - (HEAD -> master, tag: v1.3) 2018-06-14 | Modif longueur.sh else if (HEAD -> master, tag: v1.3) [darwinos]
* 089e7b1 - (tag: v1.2) 2018-06-14 | Modif longueur.sh taille oneline (tag: v1.2) [darwinos]
* 159f756 - (tag: v1.1) 2018-06-14 | Add longueur.sh (tag: v1.1) [darwinos]
* fca4aaf - 2018-06-14 | Add file6.txt [darwinos]
* 5cb7f07 - 2018-06-14 | Add file4.txt [darwinos]
* f039fa9 - 2018-06-14 | Modif file1.txt [darwinos]
| * b175110 - (testing1) 2018-06-14 | Add file5.txt (testing1) [darwinos]
| | * 90e995d - (testing2) 2018-06-14 | Add file3.txt (testing2) [darwinos]
| | * 341cb15 - 2018-06-14 | Modif file2.txt [darwinos]
| |/
| * 8028686 - 2018-06-14 | Add file2.txt [darwinos]
| * e41d877 - 2018-06-14 | Modi file1.txt [darwinos]
|/
* ef14a78 - 2018-06-14 | Add file1.txt [darwinos]
* 4d75f9a - 2018-06-14 | Add README.md [darwinos]
Avec comme variables :
-
%h : hash abrégé
%d : les références comme la branche ou le tag
%ad : la date
%s : le commentaire
%an : le nom de l’auteur
Afficher les logs jusqu’à une date spécifique :
git log [branchname]@{dateformat}
ex :
$ git log master@{2018-06-14}
$ git log testing1@{two.hours.ago}