Commandes Linux : git log

GIT LOG

 

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: darwinos 
Date:   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}

 

Fermer le menu
%d blogueurs aiment cette page :