Recherche…


Syntaxe

  • git log [options] [plage de révision] [[-] chemin ...]

Paramètres

Paramètre Explication
-q, --quiet Silencieux, supprime la sortie diff
--la source Affiche la source du commit
--use-mailmap Utiliser un fichier de carte de messagerie (modifie les informations utilisateur pour l'utilisateur en cours de validation)
--décorer [= ...] Options de décoration
--L <n, m: fichier> Afficher le journal pour une plage spécifique de lignes dans un fichier, en partant de 1. Commence à partir de la ligne n, passe à la ligne m. Affiche également diff.
--show-signature Afficher les signatures des validations signées
-i, --regexp-ignore-case Faire correspondre les schémas de limitation des expressions régulières sans tenir compte de la casse des lettres

Remarques

Références et documentation à jour: documentation officielle de git-log

"Git Log" régulier

git log

affichera tous vos commits avec l'auteur et le hachage. Cela sera affiché sur plusieurs lignes par validation. (Si vous souhaitez afficher une seule ligne par validation, consultez la rubrique en ligne ). Utilisez la touche q pour quitter le journal.

Par défaut, sans arguments, git log répertorie les validations effectuées dans ce référentiel dans l'ordre chronologique inverse, c'est-à-dire que les validations les plus récentes apparaissent en premier. Comme vous pouvez le voir, cette commande répertorie chaque validation avec sa somme de contrôle SHA-1, le nom et le courrier électronique de l'auteur, la date écrite et le message de validation. - source

Exemple (du référentiel Free Code Camp ):

commit 87ef97f59e2a2f4dc425982f76f14a57d0900bcf
Merge: e50ff0d eb8b729
Author: Brian <[email protected]>
Date:   Thu Mar 24 15:52:07 2016 -0700

    Merge pull request #7724 from BKinahan/fix/where-art-thou
    
    Fix 'its' typo in Where Art Thou description

commit eb8b7298d516ea20a4aadb9797c7b6fd5af27ea5
Author: BKinahan <[email protected]>
Date:   Thu Mar 24 21:11:36 2016 +0000

    Fix 'its' typo in Where Art Thou description

commit e50ff0d249705f41f55cd435f317dcfd02590ee7
Merge: 6b01875 2652d04
Author: Mrugesh Mohapatra <[email protected]>
Date:   Thu Mar 24 14:26:04 2016 +0530

    Merge pull request #7718 from deathsythe47/fix/unnecessary-comma
    
    Remove unnecessary comma from CONTRIBUTING.md

Si vous souhaitez limiter votre commande au dernier n engage journal que vous pouvez simplement passer un paramètre. Par exemple, si vous souhaitez lister les 2 derniers journaux de validation

git log -2 

Journal en ligne

git log --oneline

affichera tous vos commits avec seulement la première partie du hachage et le message de validation. Chaque validation sera sur une seule ligne, comme l' oneline indicateur en ligne.

L'option en ligne imprime chaque validation sur une seule ligne, ce qui est utile si vous consultez beaucoup de validations. - source

Exemple (du référentiel Free Code Camp , avec la même section de code de l'autre exemple):

87ef97f Merge pull request #7724 from BKinahan/fix/where-art-thou
eb8b729 Fix 'its' typo in Where Art Thou description
e50ff0d Merge pull request #7718 from deathsythe47/fix/unnecessary-comma
2652d04 Remove unnecessary comma from CONTRIBUTING.md
6b01875 Merge pull request #7667 from zerkms/patch-1
766f088 Fixed assignment operator terminology
d1e2468 Merge pull request #7690 from BKinahan/fix/unsubscribe-crash
bed9de2 Merge pull request #7657 from Rafase282/fix/

Si vous souhaitez vous limiter ordonnes dernier n engage journal que vous pouvez simplement passer un paramètre. Par exemple, si vous souhaitez lister les 2 derniers journaux de validation

git log -2 --oneline

Journal plus joli

Pour voir le journal dans une plus belle structure graphique, utilisez:

git log --decorate --oneline --graph

sortie de l'échantillon:

* e0c1cea (HEAD -> maint, tag: v2.9.3, origin/maint) Git 2.9.3
*   9b601ea Merge branch 'jk/difftool-in-subdir' into maint
|\  
| * 32b8c58 difftool: use Git::* functions instead of passing around state
| * 98f917e difftool: avoid $GIT_DIR and $GIT_WORK_TREE
| * 9ec26e7 difftool: fix argument handling in subdirs
* |   f4fd627 Merge branch 'jk/reset-ident-time-per-commit' into maint
...

Comme c'est une commande assez importante, vous pouvez assigner un alias:

git config --global alias.lol "log --decorate --oneline --graph"

Pour utiliser la version alias:

# history of current branch :
git lol

# combined history of active branch (HEAD), develop and origin/master branches :
git lol HEAD develop origin/master

# combined history of everything in your repo :
git lol --all

Connectez-vous avec les modifications en ligne

Pour voir le journal avec les modifications en ligne, utilisez les options -p ou --patch .

git log --patch

Exemple (extrait du dépôt Trello Scientist )

ommit 8ea1452aca481a837d9504f1b2c77ad013367d25
Author: Raymond Chou <[email protected]>
Date:   Wed Mar 2 10:35:25 2016 -0800

    fix readme error link

diff --git a/README.md b/README.md
index 1120a00..9bef0ce 100644
--- a/README.md
+++ b/README.md
@@ -134,7 +134,7 @@ the control function threw, but *after* testing the other functions and readying
 the logging. The criteria for matching errors is based on the constructor and
 message.

-You can find this full example at [examples/errors.js](examples/error.js).
+You can find this full example at [examples/errors.js](examples/errors.js).

 ## Asynchronous behaviors


commit d3178a22716cc35b6a2bdd679a7ec24bc8c63ffa
:

Recherche de journal

git log -S"#define SAMPLES"

Recherche l' ajout ou la suppression d'une chaîne spécifique ou la chaîne correspondante fournie par REGEXP. Dans ce cas, nous cherchons à ajouter / supprimer la chaîne #define SAMPLES . Par exemple:

+#define SAMPLES  100000

ou

-#define SAMPLES  100000

git log -G"#define SAMPLES"

Recherche les modifications dans les lignes contenant une chaîne spécifique ou la chaîne correspondant à REGEXP. Par exemple:

-#define SAMPLES  100000
+#define SAMPLES  100000000

Liste toutes les contributions regroupées par nom d'auteur

git shortlog résume git log et groupes par auteur

Si aucun paramètre n'est donné, une liste de tous les commits effectués par committer sera affichée dans l'ordre chronologique.

$ git shortlog
Committer 1 (<number_of_commits>):
    Commit Message 1
    Commit Message 2
    ...
Committer 2 (<number_of_commits>):
    Commit Message 1
    Commit Message 2
    ...

Pour voir simplement le nombre de commits et supprimer la description de la validation, passez l’option de résumé:

-s

--summary

$ git shortlog -s
<number_of_commits> Committer 1
<number_of_commits> Committer 2

Pour trier la sortie par nombre de validations plutôt que par ordre alphabétique par nom de composant, indiquez l'option numérotée:

-n

--numbered


Pour ajouter l'e-mail d'un committer, ajoutez l'option email:

-e

--email


Une option de format personnalisé peut également être fournie si vous souhaitez afficher des informations autres que le sujet de validation:

--format

Cela peut être n'importe quelle chaîne acceptée par l'option --format de git log .

Voir Colorisation des journaux ci-dessus pour plus d'informations à ce sujet.

Filtrer les journaux

git log --after '3 days ago'

Les dates spécifiques fonctionnent aussi:

git log --after 2016-05-01

Comme avec les autres commandes et indicateurs qui acceptent un paramètre de date, le format de date autorisé est pris en charge par la date GNU (très flexible).

Un alias --after est --since .

Les drapeaux existent pour l'inverse aussi: --before et --until .

Vous pouvez également filtrer les journaux par author . par exemple

git log --author=author

Journal d'une plage de lignes dans un fichier

$ git log -L 1,20:index.html
commit 6a57fde739de66293231f6204cbd8b2feca3a869
Author: John Doe <[email protected]>
Date:   Tue Mar 22 16:33:42 2016 -0500

    commit message

diff --git a/index.html b/index.html
--- a/index.html
+++ b/index.html
@@ -1,17 +1,20 @@
 <!DOCTYPE HTML>
 <html>
-       <head>
-        <meta charset="utf-8">
+
+<head>
+    <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1">

Coloriser les journaux

git log --graph --pretty=format:'%C(red)%h%Creset -%C(yellow)%d%Creset %s %C(green)(%cr) %C(yellow)<%an>%Creset'

L'option format vous permet de spécifier votre propre format de sortie de journal:

Paramètre Détails
%C(color_name) l'option colore la sortie qui suit
%h ou% H abréviations commettre le hachage (utiliser% H pour le hachage complet)
%Creset réinitialise la couleur à la couleur du terminal par défaut
%d noms de ref
%s sujet [commettre un message]
%cr date d'engagement, par rapport à la date actuelle
%an nom de l'auteur

Une ligne indiquant le nom du commetteur et l'heure depuis la validation

tree = log --oneline --decorate --source --pretty=format:'"%Cblue %h %Cgreen %ar %Cblue %an %C(yellow) %d %Creset %s"'  --all --graph 

Exemple

*    40554ac  3 months ago  Alexander Zolotov    Merge pull request #95 from gmandnepr/external_plugins
|\  
| *  e509f61  3 months ago  Ievgen Degtiarenko    Documenting new property
| *  46d4cb6  3 months ago  Ievgen Degtiarenko    Running idea with external plugins
| *  6253da4  3 months ago  Ievgen Degtiarenko    Resolve external plugin classes
| *  9fdb4e7  3 months ago  Ievgen Degtiarenko    Keep original artifact name as this may be important for intellij
| *  22e82e4  3 months ago  Ievgen Degtiarenko    Declaring external plugin in intellij section
|/  
*  bc3d2cb  3 months ago  Alexander Zolotov    Ignore DTD in plugin.xml

Git Log Entre Deux Branches

git log master..foo affichera les commits qui sont sur foo et non sur master . Utile pour voir ce que vous avez ajouté depuis le branchement!

Journal affichant les fichiers validés

git log --stat

Exemple:

commit 4ded994d7fc501451fa6e233361887a2365b91d1
Author: Manassés Souza <[email protected]>
Date:   Mon Jun 6 21:32:30 2016 -0300

    MercadoLibre java-sdk dependency

 mltracking-poc/.gitignore |  1 +
 mltracking-poc/pom.xml    | 14 ++++++++++++--
 2 files changed, 13 insertions(+), 2 deletions(-)

commit 506fff56190f75bc051248770fb0bcd976e3f9a5
Author: Manassés Souza <[email protected]>
Date:   Sat Jun 4 12:35:16 2016 -0300

    [manasses] generated by SpringBoot initializr

 .gitignore                                                                            |  42 ++++++++++++
 mltracking-poc/mvnw                                                                   | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 mltracking-poc/mvnw.cmd                                                               | 145 +++++++++++++++++++++++++++++++++++++++
 mltracking-poc/pom.xml                                                                |  74 ++++++++++++++++++++
 mltracking-poc/src/main/java/br/com/mls/mltracking/MltrackingPocApplication.java      |  12 ++++
 mltracking-poc/src/main/resources/application.properties                              |   0
 mltracking-poc/src/test/java/br/com/mls/mltracking/MltrackingPocApplicationTests.java |  18 +++++
 7 files changed, 524 insertions(+)

Afficher le contenu d'un seul commit

En utilisant git show on peut voir un seul commit

git show 48c83b3
git show 48c83b3690dfc7b0e622fd220f8f37c26a77c934

Exemple

commit 48c83b3690dfc7b0e622fd220f8f37c26a77c934
Author: Matt Clark <[email protected]>
Date:   Wed May 4 18:26:40 2016 -0400

    The commit message will be shown here.

diff --git a/src/main/java/org/jdm/api/jenkins/BuildStatus.java b/src/main/java/org/jdm/api/jenkins/BuildStatus.java
index 0b57e4a..fa8e6a5 100755
--- a/src/main/java/org/jdm/api/jenkins/BuildStatus.java
+++ b/src/main/java/org/jdm/api/jenkins/BuildStatus.java
@@ -50,7 +50,7 @@ public enum BuildStatus {

                        colorMap.put(BuildStatus.UNSTABLE, Color.decode( "#FFFF55" ));
-                       colorMap.put(BuildStatus.SUCCESS,  Color.decode( "#55FF55" ));
+                       colorMap.put(BuildStatus.SUCCESS,  Color.decode( "#33CC33" ));
                        colorMap.put(BuildStatus.BUILDING, Color.decode( "#5555FF" ));

Recherche d'une chaîne de validation dans le journal git

Recherche dans le journal git en utilisant une chaîne de caractères dans le journal:

git log [options] --grep "search_string"

Exemple:

git log --all --grep "removed file"

Recherche la chaîne de removed file dans tous les journaux de toutes les branches .


À partir de git 2.4+, la recherche peut être inversée à l'aide de l'option --invert-grep .

Exemple:

git log --grep="add file" --invert-grep

Affiche tous les commits ne contenant pas de add file .



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow