Suche…


Syntax

  • git log [Optionen] [Revisionsbereich] [[-] Pfad ...]

Parameter

Parameter Erläuterung
-q, --quiet Leise, unterdrückt die diff-Ausgabe
--Quelle Zeigt die Quelle des Commits an
--use-mailmap E-Mail-Map-Datei verwenden (Benutzerinformationen ändern, um Benutzer zu verpflichten)
--decorate [= ...] Optionen gestalten
--L <n, m: file> Protokoll für einen bestimmten Zeilenbereich in einer Datei anzeigen, beginnend von 1. Startet von Zeile n bis Zeile m. Zeigt auch diff.
--show-Unterschrift Signaturen signierter Commits anzeigen
-i, --regexp-ignore-case Passen Sie die Muster für die Begrenzung regulärer Ausdrücke an, ohne den Buchstaben zu berücksichtigen

Bemerkungen

Referenzen und aktuelle Dokumentation : Offizielle Dokumentation von git-log

"Normales" Git Log

git log

zeigt alle Ihre Commits mit dem Autor und Hash an. Dies wird in mehreren Zeilen pro Commit angezeigt. (Wenn Sie pro Commit eine einzelne Zeile anzeigen möchten, lesen Sie Onelineing. ) Verwenden Sie die Taste q , um das Protokoll zu verlassen.

Standardmäßig, ohne Argumente, listet git log die Commits in diesem Repository in umgekehrter chronologischer Reihenfolge auf, dh die neuesten Commits werden zuerst angezeigt. Wie Sie sehen, listet dieser Befehl jedes Commit mit seiner SHA-1-Prüfsumme, dem Namen und der E-Mail-Adresse des Autors, dem Datum und der Commit-Nachricht auf. - Quelle

Beispiel (aus dem Free Code Camp- Repository):

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

Wenn Sie Ihren Befehl auf das letzte n Commit-Protokoll beschränken möchten, können Sie einfach einen Parameter übergeben. Zum Beispiel, wenn Sie die letzten 2 Commits-Protokolle auflisten möchten

git log -2 

Oneline-Protokoll

git log --oneline

zeigt alle Ihre Commits mit nur dem ersten Teil des Hash und der Commit-Nachricht. Jedes Commit wird in einer einzigen Zeile sein, wie das oneline Flag vorschlägt.

Die Option oneline druckt jedes Commit in einer einzigen Zeile. Dies ist nützlich, wenn Sie viele Commits betrachten. - Quelle

Beispiel (aus dem Free Code Camp- Repository, mit demselben Code-Abschnitt aus dem anderen Beispiel):

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/

Wenn Sie den Befehl auf das letzte n Commit-Protokoll beschränken möchten, können Sie einfach einen Parameter übergeben. Zum Beispiel, wenn Sie die letzten 2 Commits-Protokolle auflisten möchten

git log -2 --oneline

Schöneres Protokoll

Um das Protokoll in einer hübscheren grafischen Struktur zu sehen, verwenden Sie:

git log --decorate --oneline --graph

Beispielausgabe:

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

Da es sich um einen ziemlich großen Befehl handelt, können Sie einen Alias ​​vergeben:

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

So verwenden Sie die Alias-Version:

# 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

Protokoll mit Änderungen inline

Verwenden Sie die Optionen -p oder --patch , um das Protokoll mit Inline-Änderungen --patch .

git log --patch

Beispiel (aus Trello Scientist Repository)

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
:

Protokollsuche

git log -S"#define SAMPLES"

Sucht nach Hinzufügen oder Entfernen einer bestimmten Zeichenfolge oder der Zeichenfolge, die mit REGEXP übereinstimmt . In diesem Fall suchen wir nach Hinzufügen / Entfernen der Zeichenfolge #define SAMPLES . Zum Beispiel:

+#define SAMPLES  100000

oder

-#define SAMPLES  100000

git log -G"#define SAMPLES"

Sucht nach Änderungen in Zeilen, die eine bestimmte Zeichenfolge oder die entsprechende Zeichenfolge enthalten , die von REGEXP bereitgestellt wird. Zum Beispiel:

-#define SAMPLES  100000
+#define SAMPLES  100000000

Alle Beiträge nach Autorennamen gruppieren

git shortlog fasst git log und gruppen nach git shortlog zusammen

Wenn keine Parameter angegeben werden, wird eine Liste aller Commits pro Committer in chronologischer Reihenfolge angezeigt.

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

Um einfach die Anzahl der Commits zu sehen und die Commit-Beschreibung zu unterdrücken, übergeben Sie die Zusammenfassungsoption:

-s

--summary

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

Übergeben Sie die nummerierte Option, um die Ausgabe nach Anzahl der Commits statt alphabetisch nach Committer-Namen zu sortieren:

-n

--numbered


Um die E-Mail eines Committers hinzuzufügen, fügen Sie die E-Mail-Option hinzu:

-e

--email


Eine benutzerdefinierte Formatoption kann auch bereitgestellt werden, wenn Sie andere Informationen als den Betreff anzeigen möchten:

--format

Dies kann eine beliebige Zeichenfolge sein, die von der Option --format von git log akzeptiert wird.

Weitere Informationen hierzu finden Sie oben unter Farbprotokolle .

Protokolle filtern

git log --after '3 days ago'

Bestimmte Termine funktionieren auch:

git log --after 2016-05-01

Wie bei anderen Befehlen und Flags, die einen Datumsparameter akzeptieren, wird das zulässige Datumsformat von GNU date unterstützt (sehr flexibel).

Ein Alias ​​für - --after ist --since .

Flaggen gibt es auch für das Gegenteil: --before und - --until .

Sie können Protokolle auch nach author filtern. z.B

git log --author=author

Protokoll für einen Zeilenbereich in einer Datei

$ 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">

Protokolle kolorieren

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

Mit der format können Sie Ihr eigenes Protokollausgabeformat angeben:

Parameter Einzelheiten
%C(color_name) Option färbt die Ausgabe, die danach kommt
%h oder% H kürzt Commit-Hash (verwenden Sie% H für vollständigen Hash)
%Creset Setzt die Farbe auf die Standard-Terminalfarbe zurück
%d Referenznamen
%s Betreff [Commit-Nachricht]
%cr Committer-Datum, relativ zum aktuellen Datum
%an Autorenname

Eine Zeile mit dem Namen und der Uhrzeit des Commiters seit dem Festschreiben

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

Beispiel

*    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 zwischen zwei Zweigen

git log master..foo zeigt die Commits an, die auf foo und nicht auf master . Hilfreich, um zu sehen, welche Commits Sie seit dem Verzweigen hinzugefügt haben!

Protokoll mit übertragenen Dateien

git log --stat

Beispiel:

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(+)

Zeigt den Inhalt eines einzelnen Commits

Mit git show wir ein einzelnes Commit anzeigen

git show 48c83b3
git show 48c83b3690dfc7b0e622fd220f8f37c26a77c934

Beispiel

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" ));

Suche nach einer Commit-Zeichenfolge im Git-Protokoll

Durchsuchen des Git-Protokolls mit einer Zeichenfolge im Protokoll:

git log [options] --grep "search_string"

Beispiel:

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

Sucht nach removed file in allen Protokollen in allen Zweigen .


Ab git 2.4+ kann die Suche mit der Option --invert-grep umgekehrt werden.

Beispiel:

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

Zeigt alle Commits an, die keine add file enthalten.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow