So überprüfen Sie den Verlauf eines Projekts mit Git Log

So überprüfen Sie den Verlauf eines Projekts mit Git Log

Einer der grundlegendsten Dienste von Git ist die Projekthistorie. Da Git alle Änderungen an Dateien verfolgt, die in einem Repository vorgenommen wurden, kann es sehr leistungsstarke Protokollierungsfunktionen bieten. Sie können den Verlauf eines Projekts auf viele verschiedene Arten abfragen und mit einem flexiblen Befehl verschiedene Daten extrahieren und anzeigen.





Die git log Befehl ist riesig, der größte aller regulären Git-Befehle. Sein Handbuch ist über 2.500 Zeilen lang. Glücklicherweise, git log bietet einen Großteil seines nützlichsten Verhaltens aus nur wenigen Schlüsseloptionen.





Grundlegende Protokollierung mit dem Standardverhalten

Standardmäßig, git log zeigt eine umgekehrt chronologische Liste von Commits. Jeder Commit enthält seinen Hash, Autor, Datum und die Commit-Nachricht:





Der Befehl verwendet einen Pager (z. B. weniger, mehr), um die vollständige Ausgabe anzuzeigen, damit Sie leicht durch die Ergebnisse navigieren können. Sie können Git so konfigurieren, dass es ein Programm Ihrer Wahl verwendet, z. B. den meisten Pager .

Hier sind einige Git-Log-Ausgaben von das Repository des Git-Quellcodes selbst:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

Das Ergebnis beginnt mit dem Commit-Hash ( 670 ...) gefolgt von einer Liste von Branches, die aktuell auf diesen Commit zeigen ( KOPF -> Meister , etc.)

So legen Sie ein GIF als Hintergrund fest

Die nächste Zeile beschreibt den Autor dieses Commits mit Namen und E-Mail-Adresse.





Das vollständige Datum und die Uhrzeit des Commits folgen in der nächsten Zeile.

Schließlich wird der vollständige Inhalt der Commit-Nachricht angezeigt. Sie können fast alles andere, was git log bietet, mit Befehlszeilenoptionen steuern. Es gibt zwei Haupttypen von Optionen:





  • Formatierung, die definiert, wie Git jeden Commit anzeigt.
  • Filterung, die definiert, welche Commits git log beinhaltet.

Zusätzlich zu den Befehlszeilenoptionen akzeptiert git log Argumente, die Dateien, Commits, Branches oder andere Referenztypen angeben. Diese wenden eine weitere Filterung an.

Formatieren der Git-Log-Ausgabe

Eine der einfachsten Anpassungen ist die --eine Linie Option, die eine sehr kurze Ausgabe erzeugt:

git log --oneline

Jede Zeile im Protokoll enthält jetzt nur noch einen abgekürzten Commit-Hash und den Betreff der Commit-Nachricht. Dies ist eine hervorragende Möglichkeit, einen Überblick über die letzten Commits für das Projekt zu erhalten:

Leider sind diese Informationen ohne anderen Kontext nicht immer so nützlich. Es mag Ihnen ein vages Gefühl für das Projekt vermitteln, aber es fehlen Daten und andere nützliche Informationen über Autoren und Dateien.

Anzeigen eines Zweigdiagramms

Die --Graph Mit dieser Option können Sie Beziehungen zwischen Zweigen visualisieren. Es ist sehr einfach, kann aber helfen, eine komplizierte Geschichte zu entwirren.

git log --oneline --graph

Verwandt: So erstellen Sie einen neuen Branch in Git

Angepasste hübsche Ausgabe

Sie können eine kompliziertere Formatierung erreichen, indem Sie sie mit dem --ziemlich Möglichkeit. Die Syntax reicht von sehr einfach bis viel komplexer, also Konsultieren Sie ein Handbuch für vollständige Details .

So erstellen Sie einen Screenshot auf Android
git log --pretty=short

Ist im Wesentlichen dasselbe wie git log ohne Datum oder vollständige Nachricht:

git log --pretty=oneline

Ist äquivalent zu git log --oneline .

git log --pretty=fuller

Enthält viele Details. Es trennt sogar Autor und Committer, die theoretisch unterschiedliche Personen sein können:

Mit dem Format: -Variante können Sie eine Zeichenfolge mit beliebigem Inhalt angeben, einschließlich Platzhaltern, die durch verschiedene Daten ersetzt werden. Hier sind einige Beispiel-Platzhalter:

  • %H Haschisch begehen
  • %h abgekürzter Commit-Hash
  • %zu Autordatum
  • %Mit Autor Datum, Verwandter
  • %S Betreff der Commit-Nachricht
  • % B Commit-Nachrichtentext
  • %P abgekürzte Eltern-Hashes

Sie können der Ausgabe feste Zeichen hinzufügen und sie einfärben. Dieses Beispiel zeigt auch eine Variation des Datumsformats:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

Beachten Sie, dass das Datum in Klammern eingeschlossen ist. Welche Formatierung Sie auch wählen, wenn Sie möchten, dass die Ausgabe in einer Pipeline oder für andere Formen der Textverarbeitung nützlich ist, sollten Sie überlegen, wie Sie jeden Teil der Ausgabe abgrenzen.

Diffs im Log anzeigen

Ein wichtiges Detail bei der Betrachtung der Historie eines Repositorys sind die Diffs selbst. Sie repräsentieren schließlich, was sich im Code tatsächlich geändert hat! Für den Anfang können Sie mit jedem Commit eine Zusammenfassung der Änderungen erhalten, indem Sie verwenden --shortstat :

git log --shortstat

Dies fügt eine Zeile wie folgt hinzu:

1 file changed, 48 insertions(+), 2 deletions(-)

Am Ende jedes Commits. Sie werden diese Art von Zusammenfassung oft sehen – zum Beispiel auf allen Seiten auf GitHub – und es ist eine nützliche Möglichkeit, den Umfang eines bestimmten Commits schnell zu beurteilen. Für detailliertere Informationen können Sie die vollständige Patch-Ausgabe (Diffs) mit dem -P Flagge:

git log -p

Git-Log-Ausgabe filtern

Unabhängig davon, welche Formatierung Sie anwenden, sehen Sie immer noch das vollständige Protokoll aller Commits im aktuellen Branch. Auch wenn Git sie in Seiten aufteilt, kann dies immer noch eine Menge Ausgabe sein. Mit den folgenden Optionen können Sie anpassen, welche Commits das Protokoll enthält.

Einschränkung nach Betrag

Wenn Sie nur die Ergebnisse trimmen möchten, um die letzten paar Commits anzuzeigen, verwenden Sie die -[Nummer] Syntax:

git log -2

Einschränkung nach Datum

Um den Satz von Commits auf einen bestimmten Datumsbereich einzuschränken, verwenden Sie die --schon seit ( --nach ) und --bis um ( --Vor ) Optionen. Diese nehmen jeweils ein Datum im ISO 8601-Format an. Sie können entweder verwenden --schon seit oder --bis um allein oder beide zusammen, um einen Bereich anzugeben. Die Optionen --nach und --Vor sind synonym.

git log --since='2021-01-01' --until='2021-05-01'

Einschränken nach Datei

Git log kann sich auf eine bestimmte Datei konzentrieren und nicht auf jede Datei in Ihrem Repository. Dies ist ideal, um herauszufinden, wie sich eine bestimmte Datei im Laufe der Zeit verändert hat. Fügen Sie einfach den Dateinamen an das Ende Ihres git-Befehls an:

git log filename

Sie sehen nur die betroffenen Commits Dateiname .

Unterschiede zwischen den Filialen

Möglicherweise haben Sie beim Anzeigen des Protokolls einer Verzweigung einige spezielle Anforderungen. Anstatt beispielsweise den gesamten Verlauf anzuzeigen, möchten Sie möglicherweise nur sehen, was sich in diesem bestimmten Zweig geändert hat. Git-Log kann über die . helfen ref1..ref2 Syntax. Es gibt drei leicht unterschiedliche Ansätze, die Sie verwenden können:

  1. Commits anzeigen, die sich im Haupt-, aber nicht im Branch befinden: |_+_|
  2. Commits anzeigen, die sich im Branch, aber nicht im Main befinden: |_+_|
  3. Commits anzeigen, die nur in Branch oder Main existieren: |_+_|

Unterschiede zwischen zwei Tags

Genauso wie Sie den Verlauf zwischen den Zweigen mit der ref1..ref2 Syntax können Sie auch den Verlauf zwischen Tags auf die gleiche Weise anzeigen. Schließlich sind sowohl Tags als auch Verzweigungen Referenztypen.

git log --oneline origin/branch..origin/main

Wenn Sie Versionshinweise für ein größeres Projekt vorbereiten, git Shortlog sollte Ihre erste Anlaufstelle sein. Es erstellt eine Liste von Autoren mit Commit-Themen daneben. Sie können ihm einen Referenzbereich übergeben, um den Verlauf ähnlich wie bei git log einzuschränken:

git log --oneline origin/ main ..origin/ branch

Die git show-Befehl ist noch vielseitiger als git log . Es kann mit Tags und anderen Arten von Git-Objekten über den Commit-Verlauf hinaus arbeiten. Es teilt viele Optionen mit git log , aber Sie werden es nur wirklich brauchen, wenn Sie sich in Details auf niedrigerer Ebene vertiefen müssen.

Überprüfen Sie die Vergangenheit mit Git Log

Git log ist ein komplizierter Befehl, aber Sie können aus seinen grundlegendsten Optionen viel Nutzen ziehen. Das Durchsuchen des Verlaufs eines Repositorys ist eine hervorragende Möglichkeit, um zu verstehen, wie oft Änderungen auftreten und wie viele Personen sie vornehmen. Wenn Sie die Geschichte eines Projekts gut verstehen, können Sie selbst dazu beitragen.

wie man eine ps4 ausschaltet
Teilen Teilen Tweet Email Schließen Sie sich dem Social Coding-Trend an und tragen Sie zu GitHub-Repositorys bei

Möchten Sie Ihre Programmiermuskeln trainieren und Open-Source-Projekten helfen? So tragen Sie zu GitHub bei.

Weiter lesen
Verwandte Themen
  • Programmierung
  • GitHub
  • Codierungstipps
Über den Autor Bobby Jack(58 veröffentlichte Artikel)

Bobby ist ein Technologie-Enthusiast, der fast zwei Jahrzehnte lang als Software-Entwickler gearbeitet hat. Er hat eine Leidenschaft für Spiele, arbeitet als Rezensionsredakteur beim Switch Player Magazine und vertieft sich in alle Aspekte des Online-Publishing und der Webentwicklung.

Mehr von Bobby Jack

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren