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.

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--graphzeichnet 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.--onelinegibt eine Zeile pro Commit aus: den kurzen Hash und die erste Zeile der Nachricht.--allzeigt jeden Zweig, jeden Remote-Zweig und jedes Tag sowieHEADan, nicht nur den Zweig, in dem Sie sich befinden. Ohne sie bleiben Zweige, die nicht mit Ihrem aktuellen Zweig zusammengeführt werden, verborgen.--decorategibt 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 oderlog.decorategeä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.0Lesen 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 treeVier 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"--first-parentfolgt nur dem ersten übergeordneten Element jeder Zusammenführung, daher liest sichmainals eine direkte Liste dessen, was darauf gelandet ist, eine Zusammenführung pro Feature.--simplify-by-decorationbehält nur die Commits, auf die ein Zweig oder ein Tag verweist: eine Gliederung Ihres Git-Zweigbaums ohne die Commits dazwischen.main..feature/searchzeigt die Commits auffeature/search, die noch nicht inmainsind, was eine Zusammenführung mit sich bringen würde.--pretty=formatfü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 --allgitk 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 gitkGitk 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.

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:
| Was Sie sehen | Was es bedeutet |
|---|---|
Ein Punkt (* im Terminal) | Ein Commit. Neuere Commits liegen über älteren. |
| Eine vertikale Linie oder Spur | Eine Entwicklungslinie: Commits, die in einem Zweig aufeinander folgen. |
| Eine Linie, die sich abspaltet | Jemand hat einen Zweig von diesem Commit gestartet und die Arbeit wurde an zwei Stellen fortgesetzt. |
| Zwei Linien treffen sich an einem Punkt | Ein Merge-Commit. Es hat zwei Eltern, eines aus jeder Linie. |
Eine Bezeichnung wie main, origin/main oder v1.0.0 | Ein lokaler Zweig, ein Remote-Zweig oder ein Tag, das auf diesen Commit zeigt. HEAD -> markiert, was Sie ausgecheckt haben. |
| Eine gerade Linie, keine Gabeln | Linearer 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.

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"--authorbehält Commits bei, deren Autorenname oder E-Mail-Adresse mit dem Muster übereinstimmt.--sinceund--untilbegrenzen 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.-Gfindet 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\wfunktionieren 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:janeoderauthor:"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.

Sehen Sie sich Ihren Git-Baum in GitTree an.
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.
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.
Ö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.
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.
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 mitauthor:,file:oderchange:zu suchen.
Welchen Git-Baum-Visualizer sollten Sie verwenden?
| Option | Am besten für | Was Sie brauchen |
|---|---|---|
git log --graph | Kurze Einblicke, SSH-Sitzungen, Skripte und CI-Protokolle | Nur Git |
| Idiot | Ein anklickbares Diagramm aus der Git-Suite selbst | Git (unter Debian und Ubuntu das separate Gitk-Paket) |
| GitTree | Lesen, Suchen und Ändern des Verlaufs in einem Fenster | GitTree (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.