Zum Inhalt springen
GitTree

Git-Anleitungen

Git Tree Visualizer und Viewer: So sehen Sie Ihren Git-Verlauf als Diagramm

Drei Möglichkeiten, Ihren Git-Verlauf als Baum anzuzeigen: das Git-Log-Diagramm in Ihrem Terminal, Gitk und ein anklickbares GUI-Commit-Diagramm. Dann lernen Sie, Lanes und Merges zu lesen und den Commit zu finden, den Sie brauchen.

Geschrieben von KodmoraAktualisiert 12 Min. gelesen
GitTree Commit-Diagramm mit farbcodierten Verzweigungsspuren, Verzweigungs- und Tag-Beschriftungen, der Referenzseitenleiste und dem Commit-Detailfenster

Ein Git-Baum-Visualizer stellt Ihren Commit-Verlauf als Diagramm dar: Jeder Punkt ist ein Commit, jede farbige Linie ist ein Zweig und zwei Linien, die sich an einem Punkt treffen, sind eine Zusammenführung. Git selbst verfügt über zwei: Führen Sie git log --graph --oneline --all --decorate in einem beliebigen Terminal aus oder öffnen Sie gitk --all. Wenn Sie einen Verlauf wünschen, können Sie darauf klicken, filtern und suchen und ein GUI-Commit-Diagramm wie GitTree, einen Desktop-Git-Client für macOS, Windows und Linux verwenden.

Dieser Leitfaden geht alle drei durch und zeigt dann, wie man Lanes liest und Commits zusammenführt und wie man einen Commit unter Tausenden findet. Eine kurze Offenlegung: Der Ersteller von GitTree hat es geschrieben. Die Befehlszeilen- und Gitk-Abschnitte benötigen nur Git.

Git-Protokolldiagramm: Die bereits in Git integrierte Baumansicht

Die schnellste Git-Baumansicht ist ein Befehl. Es funktioniert in jedem Repository, über SSH und auf jedem System, auf dem Git läuft:

git log --graph --oneline --all --decorate
  • --graph zeichnet ein Textdiagramm der Zweige und führt es links von jedem Commit zusammen. Außerdem werden Commits so sortiert, dass kein übergeordnetes Element vor seinen untergeordneten Elementen erscheint.
  • --oneline gibt eine Zeile pro Commit aus: den kurzen Hash und die erste Zeile der Nachricht.
  • --all zeigt jeden Zweig, jeden Remote-Zweig und jedes Tag sowie HEAD an, nicht nur den Zweig, in dem Sie sich befinden. Ohne sie bleiben Zweige, die nicht mit Ihrem aktuellen Zweig zusammengeführt werden, verborgen.
  • --decorate gibt Branch- und Tag-Namen neben den Commits aus, auf die sie verweisen. Git tut dies bereits, wenn die Ausgabe an ein Terminal geht, daher ist das Flag vor allem dann wichtig, wenn Sie die Ausgabe weiterleiten oder log.decorate geändert haben.

Die Ausgabe sieht so aus. Der neueste Commit steht oben, * markiert einen Commit und die Zeichen |, \ und / sind die Verzweigungszeilen:

*   a1b2c3d (HEAD -> main) Merge branch 'feature/search'
|\
| * 9f8e7d6 (feature/search) Highlight matched terms
| * 5c4b3a2 Add search index
* | 1a2b3c4 Fix typo in README
|/
* 0f9e8d7 (tag: v1.0.0) Release 1.0.0

Lesen Sie es von unten nach oben: v1.0.0 wurde veröffentlicht, dann liefen zwei Arbeitszeilen nebeneinander (ein README-Fix für main, eine Suchfunktion in einem eigenen Zweig), und die Zusammenführung oben verband sie wieder.

Speichern Sie es als Kurzalias

Niemand möchte jedes Mal vier Flaggen eingeben. Ein Git-Alias wandelt den gesamten Befehl in git tree um:

git config --global alias.tree "log --graph --oneline --all --decorate"
git tree

Vier wissenswerte Variationen

git log --graph --oneline --first-parent main
git log --graph --oneline --all --simplify-by-decoration
git log --graph --oneline main..feature/search
git log --graph --pretty=format:"%h %an %ar %s"
  1. --first-parent folgt nur dem ersten übergeordneten Element jeder Zusammenführung, daher liest sich main als eine direkte Liste dessen, was darauf gelandet ist, eine Zusammenführung pro Feature.
  2. --simplify-by-decoration behält nur die Commits, auf die ein Zweig oder ein Tag verweist: eine Gliederung Ihres Git-Zweigbaums ohne die Commits dazwischen.
  3. main..feature/search zeigt die Commits auf feature/search, die noch nicht in main sind, was eine Zusammenführung mit sich bringen würde.
  4. --pretty=format fügt jeder Zeile den Autor und ein relatives Datum („vor 3 Tagen“) hinzu.

gitk: der Git-Verlaufs-Viewer, der mit Git geliefert wird

gitk ist Gits eigener grafischer Repository-Browser, geschrieben in Tcl/Tk. Es zeichnet das Commit-Diagramm, zeigt die Details jedes Commits an und listet die Dateien in jeder Revision auf. Starten Sie es aus einem Repository heraus:

gitk --all

gitk akzeptiert die gleichen Grenzwerte wie git log, sodass Sie es auf einen Zeitbereich oder einen Ordner eingrenzen können. Dadurch werden nur die Änderungen der letzten zwei Wochen unter src/ geöffnet:

gitk --since="2 weeks ago" -- src/

Wenn Ihre Shell mit gitk: command not found antwortet, wurde es in Ihrer Git-Installation weggelassen. Unter Debian und Ubuntu ist gitk ein separates Paket:

sudo apt install gitk

Gitk wurde zum Lesen von Geschichte entwickelt. Es verfügt über einige Commit-Aktionen im Rechtsklick-Menü, aber das Ausführen von Commits gehört zum Schwestertool git gui, das laut eigener Dokumentation keinen Projektverlauf anzeigt. Bei der täglichen Arbeit wechselt man am Ende zwischen den beiden Fenstern und dem Terminal.

Ein GUI-Commit-Diagramm: eine Git-Baumansicht, auf die Sie klicken können

Ein Desktop-Git-Client zeichnet denselben Baum, aber jede Zeile ist live. Wählen Sie einen Commit aus, um dessen Nachricht, übergeordnete Elemente und geänderte Dateien anzuzeigen. Klicken Sie mit der rechten Maustaste darauf, um einen Zweig zu erstellen, ihn auszuwählen oder ihn wiederherzustellen. Doppelklicken Sie auf eine Zweigbezeichnung, um sie auszuchecken, oder ziehen Sie einen Zweig auf einen anderen, um ihn zusammenzuführen oder neu zu gründen. In GitTree ist das Commit-Diagramm das Hauptfenster und kein separater Viewer.

GitTrees Commit-Diagramm: Jeder Zweig hat seine eigene farbige Spur, Zweig- und Tag-Beschriftungen befinden sich auf der linken Seite und die Details und Dateien des ausgewählten Commits befinden sich auf der rechten Seite.
GitTrees Commit-Diagramm: Jeder Zweig hat seine eigene farbige Spur, Zweig- und Tag-Beschriftungen befinden sich auf der linken Seite und die Details und Dateien des ausgewählten Commits befinden sich auf der rechten Seite.

Hier ist, was GitTree in der Grafik zeichnet, abgesehen von Punkten und Linien:

  • Farbcodierte Lanes für jeden Zweig mit lokalen, Remote- und Tag-Beschriftungen auf den Commits, auf die sie verweisen.
  • Eine // WIP-Zeile über dem neuesten Commit für Änderungen, die Sie noch nicht festgeschrieben haben, und für jeden Stash, der bei dem Commit, aus dem er erstellt wurde, im Diagramm angezeigt wird.
  • Autoren-Avatare und Signatur-Abzeichen für signierte Commits.
  • Pull-Request- und CI-Check-Chips auf Branch-Tipps, sobald Sie eine Verbindung zu GitHub, GitLab, Bitbucket oder Azure DevOps herstellen.
  • Reibungsloses Scrollen über 100.000 Commits hinaus (gemessen an Linux), sodass große Historien nutzbar bleiben.

GitTree führt das Git aus, das bereits auf Ihrem Computer installiert ist (Version 2.39 oder neuer), sodass jede Schaltfläche das tut, was der entsprechende Befehl tun würde. Wenn Sie sich immer noch zwischen den beiden Stilen entscheiden müssen, deckt unser Vergleich der Verwendung einer Git-GUI mit der Befehlszeile die Kompromisse ab.

So lesen Sie ein Git-Commit-Diagramm: Lanes, Forks und Merges

Unabhängig davon, ob das Diagramm in einem Terminal ASCII oder in einem Fenster farbig ist, gelten die gleichen Regeln:

Lesen eines Git-Commit-Diagramms
Was Sie sehenWas es bedeutet
Ein Punkt (* im Terminal)Ein Commit. Neuere Commits liegen über älteren.
Eine vertikale Linie oder SpurEine Entwicklungslinie: Commits, die in einem Zweig aufeinander folgen.
Eine Linie, die sich abspaltetJemand hat einen Zweig von diesem Commit gestartet und die Arbeit wurde an zwei Stellen fortgesetzt.
Zwei Linien treffen sich an einem PunktEin Merge-Commit. Es hat zwei Eltern, eines aus jeder Linie.
Eine Bezeichnung wie main, origin/main oder v1.0.0Ein lokaler Zweig, ein Remote-Zweig oder ein Tag, das auf diesen Commit zeigt. HEAD -> markiert, was Sie ausgecheckt haben.
Eine gerade Linie, keine GabelnLinearer Verlauf, normalerweise aus Fast-Forward-Merges oder Rebasing vor dem Merge.

Merge-Commits lesen

Ein Merge-Commit hat zwei Eltern. Der erste übergeordnete Zweig ist der Zweig, in dem Sie sich beim Zusammenführen befanden, normalerweise main. Der zweite ist der Zweig, den Sie zusammengeführt haben. Deshalb liefert --first-parent eine so klare Zusammenfassung von main: Es überspringt das Innere jedes Feature-Zweigs. Wählen Sie in GitTree eine Zusammenführung aus und im Detailbereich werden beide übergeordneten Hashes aufgelistet.

Ein Merge-Commit, das im Light-Design von GitTree ausgewählt wurde: Im Detailbereich werden beide übergeordneten Dateien und die Dateien angezeigt, die durch die Zusammenführung geändert wurden.
Ein Merge-Commit, das im Light-Design von GitTree ausgewählt wurde: Im Detailbereich werden beide übergeordneten Dateien und die Dateien angezeigt, die durch die Zusammenführung geändert wurden.

Wenn sich Fahrspuren kreuzen und es im Bild hektisch zugeht

Langlebige Äste, die hin und her ineinander übergehen, sorgen dafür, dass sich Fahrspuren kreuzen. Nichts ist kaputt; Es ist einfach mehr auf dem Bildschirm zu sehen, als Sie benötigen. Schneiden Sie es auf die Zweige zurück, die Ihnen wichtig sind. Benennen Sie sie im Terminal, anstatt --all zu verwenden, zum Beispiel git log --graph --oneline main feature/search. Klicken Sie in GitTree mit der rechten Maustaste auf eine Zweigbezeichnung und wählen Sie Im Diagramm ausblenden, Einzeln im Diagramm, um nur diesen Zweig anzuzeigen, oder Nach links anheften, um seine Spur in der ersten Spalte beizubehalten.

Durchsuchen Sie den Git-Verlauf: Finden Sie einen Commit unter Tausenden

Den Baum zu sehen ist die halbe Arbeit. Die andere Hälfte besteht darin, den einen Commit zu finden, der das, was Sie debuggen, geändert hat.

Suchen Sie über die Befehlszeile

git log --oneline --author="Jane"
git log --oneline --since="2 weeks ago" -- src/
git log --oneline -S"parse_header"
git log --oneline -G"fn [a-z_]+_header"
  • --author behält Commits bei, deren Autorenname oder E-Mail-Adresse mit dem Muster übereinstimmt.
  • --since und --until begrenzen nach Datum, und -- src/ behält nur Commits bei, die diesen Pfad berührt haben.
  • -S, die „Spitzhacke“, findet Commits, die eine Zeichenfolge hinzugefügt oder entfernt haben. Dies ist der schnellste Weg, um zu erfahren, wann eine Funktion erschienen oder verschwunden ist.
  • -G findet Commits, deren hinzugefügte oder entfernte Zeilen mit einem regulären Ausdruck übereinstimmen. Halten Sie sich an POSIX-Klammerausdrücke wie [a-z_] oder [[:alnum:]]: Verknüpfungen wie \w funktionieren nicht mit jedem Git-Build.

Suchen Sie in GitTree mit Autor:, Datei: und ändern Sie:

Die Suche oberhalb des Diagramms (Geladenen Verlauf durchsuchen) entspricht einer Nachricht, einem Autor, einem Hash, einem Zweig oder einem Tag. Für eine tiefergehende Suche öffnen Sie die Befehlspalette mit Strg+Umschalt+P (⌘+Umschalt+P auf einem Mac), geben Sie # und dann Ihre Suchanfrage ein. Wörter ohne Präfix durchsuchen Commit-Nachrichten, und diese Präfixe grenzen das Ergebnis ein:

  • author:jane oder author:"Jane Doe": Der Name oder die E-Mail-Adresse des Autors enthält diesen Text.
  • file:src/main.rs: Der Commit berührt diesen Pfad. Wiederholen Sie den Vorgang, um mehrere Pfade abzugleichen.
  • change:parse_header: Der Commit fügt diese Zeichenfolge hinzu oder entfernt sie, z. B. git log -S.
  • change:/fn [a-z_]+_header/: Eine geänderte Zeile entspricht dem regulären Ausdruck, z. B. git log -G.

Kombinieren Sie sie in einer Abfrage: #fix crash author:jane file:src/ findet Janes Commits, in denen „Absturz beheben“ erwähnt wird, und berührt src/. Um das Diagramm selbst zu verkleinern, anstatt die Ergebnisse aufzulisten, verwenden Sie Diagramm filtern…, um nur einen Autor, einen Datumsbereich oder einen Pfad beizubehalten.

Die GitTree-Befehlspalette: Geben Sie # ein, um nach Commits zu suchen, @ für Zweige und Tags oder : für Dateien.
Die GitTree-Befehlspalette: Geben Sie # ein, um nach Commits zu suchen, @ für Zweige und Tags oder : für Dateien.

Sehen Sie sich Ihren Git-Baum in GitTree an.

  1. Installieren Sie GitTree

    Laden Sie GitTree für macOS, Windows oder Linux herunter und installieren Sie es. Stellen Sie sicher, dass Git 2.39 oder neuer installiert ist (auf Windows, das heißt Git for Windows); Ubuntu 22.04 liefert ein älteres Git, also aktualisieren Sie Git zuerst auf Ubuntu.

  2. Anmelden und starten

    Wenn GitTree geöffnet wird, melden Sie sich mit einem GitTree-Konto an, das Sie auf gittree.app mit Ihrer E-Mail-Adresse oder einem Git-Anbieter erstellt haben: Das Diagramm und alle anderen Git-Funktionen sind dann im kostenlosen Plan enthalten. Die Hosting-Integrationen (GitHub, GitLab, Bitbucket und Azure DevOps, private Remotes inbegriffen) und Nour, der KI-Assistent, werden mit GitTree Pro geliefert, das mit einer kostenlosen Testversion beginnt; Der Free-Plan wird danach weitergeführt.

  3. Öffnen oder klonen Sie ein Repository

    Wählen Sie auf der Startseite „Öffnen“ und wählen Sie einen Ordner aus, der ein Git-Repository enthält, oder wählen Sie „Klonen“, um eines von einer URL über HTTPS oder SSH zu kopieren.

  4. Lesen Sie die Grafik

    Das Commit-Diagramm füllt das Hauptfenster: die neuesten Commits oben, eine farbige Spur pro Zweig, Beschriftungen für Zweige und Tags. Klicken Sie auf einen beliebigen Commit, um dessen Nachricht, übergeordnete Elemente und geänderte Dateien anzuzeigen.

  5. Konzentrieren und suchen

    Klicken Sie mit der rechten Maustaste auf eine Zweigbezeichnung, um sie auszublenden, zu isolieren oder anzuheften, verwenden Sie „Diagramm filtern…“ für einen Autor, einen Datumsbereich oder einen Pfad und geben Sie # in die Befehlspalette ein, um mit author:, file: oder change: zu suchen.

Welchen Git-Baum-Visualizer sollten Sie verwenden?

Drei Möglichkeiten, den Git-Verlauf zu visualisieren
OptionAm besten fürWas Sie brauchen
git log --graphKurze Einblicke, SSH-Sitzungen, Skripte und CI-ProtokolleNur Git
IdiotEin anklickbares Diagramm aus der Git-Suite selbstGit (unter Debian und Ubuntu das separate Gitk-Paket)
GitTreeLesen, Suchen und Ändern des Verlaufs in einem FensterGitTree (Kostenloser Plan für jede Git-Funktion, mit einem GitTree-Konto; Nour mit Pro) und Git 2.39 oder neuer

Die meisten Entwickler verwenden am Ende mehr als eines: das Terminal für einen schnellen Blick, eine GUI zum Durchsuchen des Verlaufs und für leichter sichtbare Änderungen, wie eine interaktive Rebase in einer GUI. Wenn Sie mit Branches und Commits noch nicht vertraut sind, beginnen Sie mit unserem Git-Leitfaden für Anfänger, üben Sie dann das Lesen des Verlaufs in der kostenlosen Lektion Commits, HEAD und Revisionsbereiche lesen und erfahren Sie, was ein abgetrennter HEAD in Abgetrennte Arbeit beibehalten ist. Wenn Sie Desktop-Apps vergleichen möchten, sehen Sie sich unsere Zusammenfassung der besten Git-GUI-Clients an.

GitTree verfügt über einen kostenlosen Plan, der alle Git-Funktionen abdeckt, einschließlich privater Repositories, und Nour, der KI-Assistent, wird mit GitTree Pro geliefert. Sehen Sie sich alles an, was der Commit-Graph und der Rest der App tun können oder lesen Sie die Installationshinweise für Mac, Windows und Linux.

Häufig gestellte Fragen

Was ist ein Git-Baum-Visualizer?

Ein Git-Tree-Visualizer ist ein Tool, das den Commit-Verlauf eines Repositorys als Diagramm statt als flache Liste zeichnet. Jeder Commit ist ein Punkt, jeder Zweig eine Linie und Zusammenführungen zeigen an, wo Linien zusammenkommen. Git enthält zwei: den Befehl git log --graph für das Terminal und das Gitk-Fenster. Desktop-Git-Clients wie GitTree fügen ein anklickbares, durchsuchbares Diagramm hinzu.

Wie sehe ich den Git-Zweigbaum im Terminal?

Führen Sie git log --graph --oneline --all --decorate im Repository aus. --graph zeichnet die Zweiglinien, --oneline hält jedes Commit in einer Zeile, --all schließt alle Zweige und Tags ein und nicht nur den aktuellen Zweig und --decorate gibt Zweig- und Tag-Namen aus. Speichern Sie es als Alias ​​mit git config --global alias.tree "log --graph --oneline --all --decorate" und geben Sie von da an git tree ein.

Warum zeigt Git Log nicht alle meine Zweige an?

Standardmäßig listet git log nur die Commits auf, die von HEAD, dem Commit, den Sie ausgecheckt haben, erreichbar sind. Zweige, die nicht mit Ihrem aktuellen Zweig zusammengeführt werden, werden weggelassen. Fügen Sie --all hinzu, um alle lokalen Zweige, Remote-Zweige und Tags einzuschließen, oder benennen Sie die gewünschten Zweige, zum Beispiel git log --graph main feature/search.

Wird Gitk mit Git installiert?

gitk ist Teil der Git-Suite und daher in vielen Installationen enthalten. Einige Linux-Distributionen packen es separat: Installieren Sie es unter Debian und Ubuntu mit sudo apt install gitk. Starten Sie es aus einem Repository mit gitk --all, um jeden Zweig anzuzeigen. Es akzeptiert die gleichen Datums- und Pfadbeschränkungen wie git log, beispielsweise --since oder -- src/.

Wie finde ich den Commit, der eine bestimmte Codezeile hinzugefügt hat?

Nutzen Sie die Spitzhackensuche. git log -S"text" listet Commits auf, die geändert haben, wie oft diese genaue Zeichenfolge erscheint, was zeigt, wann sie hinzugefügt und entfernt wurde. git log -G"regex" gleicht hinzugefügte oder entfernte Zeilen mit einem regulären Ausdruck ab. Öffnen Sie in GitTree die Befehlspalette, geben Sie # ein und verwenden Sie change:text oder change:/regex/ für dieselben Suchvorgänge.

Ist GitTree kostenlos und auf welchen Systemen läuft es?

GitTree verfügt über einen kostenlosen Plan, der alle Git-Funktionen für Einzelpersonen und Organisationen abdeckt, einschließlich privater Repositories und kommerzieller Nutzung, ohne zeitliche Begrenzung und ohne Kreditkarte. Nour, der KI-Assistent, wird mit GitTree Pro geliefert; Auf der Preisseite werden die beiden Pläne verglichen. Es läuft auf macOS 13 oder höher, 64-Bit Windows 10 und 11 und 64-Bit Linux (Ubuntu 22.04 oder höher, Debian 12 oder höher). Sie werden aufgefordert, sich mit einem GitTree-Konto anzumelden, und es wird Git verwendet, das bereits auf Ihrem Computer installiert ist (Version 2.39 oder höher). GitTree Pro ist für Hosting-Integrationen erforderlich.

Kann ein Git-Graph-Viewer sehr große Repositorys verarbeiten?

Der Terminalgraph kann jede Größe verarbeiten, wird jedoch bei vielen Verzweigungen schwer zu lesen; Begrenzen Sie es mit Zweignamen, --since oder einem Pfad. Das Commit-Diagramm von GitTree scrollt reibungslos über 100.000 Commits in Messungen auf Linux hinaus, und Sie können Zweige ausblenden, vereinzeln oder anheften und nach Autor, Datum oder Pfad filtern, um einen großen Verlauf lesbar zu halten.

Quellen

Behauptungen zu anderen Produkten wurden anhand der offiziellen Seiten auf 22. Oktober 2026 überprüft. Preise und Ausstattung ändern sich; Die Seiten der Anbieter sind die Quelle der Wahrheit.