webentwicklung-frage-antwort-db.com.de

Hübsche Git-Zweigdiagramme

Ich habe gesehen, dass einige Bücher und Artikel einige wirklich hübsche Grafiken von Git-Zweigen und Commits haben. Wie kann ich druckfähige Bilder von Git-Historie erstellen?

1109
krosenvold

Update: Diese Antwort hat weit mehr Aufmerksamkeit erhalten, als sie verdient. Sie wurde ursprünglich veröffentlicht, weil ich denke, dass die Diagramme schön aussehen und in Illustrator für eine Publikation gezeichnet werden könnten - und es gab keine bessere Lösung. Aber jetzt Es gibt viel mehr anwendbare Antworten auf dieses Q, wie zum Beispiel fracz s, Jubobs 'oder Harry Lee ! Bitte gehen Sie auf die Antworten !!

Update 2: Ich habe eine verbesserte Version dieser Antwort auf die Visualisierung der Zweig-Topologie in git question gepostet, da sie dort weitaus passender ist. Diese Version enthältlg3zeigt sowohl die Informationen zum Autor und Committer, also sollten Sie es wirklich überprüfen. Wenn Sie diese Antwort aus historischen (& rep, ich gebe es zugeben) Gründen vor, obwohl ich wirklich versucht bin, sie einfach zu löschen.

2 ¢: Ich habe zwei Aliase, die ich normalerweise in meine ~/.gitconfig-Datei stecke:

[alias]
lg1 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
lg = !"git lg1"

git lg/git lg1 sieht folgendermaßen aus:
git lg1

und git lg2 sieht so aus:
git lg2

1633

Viele der Antworten hier sind großartig, aber für diejenigen, die nur eine einfache Zeile zur Punktantwort möchten, ohne Aliasnamen oder etwas anderes einzurichten, ist dies hier: 

git log --all --decorate --oneline --graph

Nicht jeder würde ständig einen git log machen, aber wenn du es brauchst, denk daran: 

"A Dog" = git log --a ll --d ecorate --o neline --g raph

 enter image description here

765

Für die Textausgabe können Sie Folgendes versuchen:

git log --graph --abbrev-commit --decorate --date=relative --all

oder:

git log --graph --oneline --decorate --all

oder: hier ist Ein Graphviz-Alias ​​zum Zeichnen des DAG-Graphen.

Ich persönlich benutze gitx , gitk --all und gitnub .

304
keo

Gitgraph.js erlaubt das Zeichnen hübscher Git-Zweige ohne Repository. Schreiben Sie einfach einen Javascript-Code, der Ihre Verzweigungen und Commits konfiguriert und im Browser rendert.

var gitGraph = new GitGraph({
   template: "blackarrow",
   mode: "compact",
   orientation: "horizontal",
   reverseArrow: true
});

var master = gitGraph.branch("master").commit().commit();
var develop = gitGraph.branch("develop").commit();
master.commit();
develop.commit().commit();
develop.merge(master);

sample graph generated with Gitgraph.js

oder mit metro template:

GitGraph.js metro theme

oder mit Commit-Nachrichten, Autoren und Tags:

GitGraph with commit messages

Testen Sie es mit JSFiddle .

Generiere es mit Git Grapher von @bsara.

199
fracz

Auf der Basis von TikZ & PGF , gitdags ist ein kleines LaTeX-Paket aufgebaut, mit dem Sie mühelos Vektorgrafiken, Grafiken und mehr erstellen können.

Die automatische Generierung des Bestätigungsgraphen eines vorhandenen Repositorys ist nicht, der Zweck von gitdags ; Die von ihm erzeugten Grafiken sind nur für Bildungszwecke gedacht.

Ich verwende es oft, um Grafiken für meine Antworten auf Git-Fragen zu erstellen, als Alternative zu ASCII -Schreibgraphen:

Hier ist ein Beispiel eines solchen Diagramms, das die Auswirkungen einer einfachen Rebase demonstriert:

enter image description here

\documentclass{article}

\usepackage{subcaption}
\usepackage{gitdags}

\begin{document}

\begin{figure}
  \begin{subfigure}[b]{\textwidth}
    \centering
    \begin{tikzpicture}
      % Commit DAG
      \gitDAG[grow right sep = 2em]{
        A -- B -- { 
          C,
          D -- E,
        }
      };
      % Tag reference
      \gittag
        [v0p1]       % node name
        {v0.1}       % node text
        {above=of A} % node placement
        {A}          % target
      % Remote branch
      \gitremotebranch
        [origmaster]    % node name
        {Origin/master} % node text
        {above=of C}    % node placement
        {C}             % target
      % Branch
      \gitbranch
        {master}     % node name and text 
        {above=of E} % node placement
        {E}          % target
      % HEAD reference
      \gitHEAD
        {above=of master} % node placement
        {master}          % target
    \end{tikzpicture}
    \subcaption{Before\ldots}
  \end{subfigure}

  \begin{subfigure}[b]{\textwidth}
    \centering
    \begin{tikzpicture}
      \gitDAG[grow right sep = 2em]{
        A -- B -- { 
          C -- D' -- E',
          {[nodes=unreachable] D -- E },
        }
      };
      % Tag reference
      \gittag
        [v0p1]       % node name
        {v0.1}       % node text
        {above=of A} % node placement
        {A}          % target
      % Remote branch
      \gitremotebranch
        [origmaster]    % node name
        {Origin/master} % node text
        {above=of C}    % node placement
        {C}             % target
      % Branch
      \gitbranch
        {master}      % node name and text 
        {above=of E'} % node placement
        {E'}          % target
      % HEAD reference
      \gitHEAD
        {above=of master} % node placement
        {master}          % target
    \end{tikzpicture}
    \subcaption{\ldots{} and after \texttt{git rebase Origin/master}}
  \end{subfigure}
  \caption{Demonstrating a typical \texttt{rebase}}
\end{figure}

\end{document}
105
jubobs

Gitg ist ein Klon von Gitk und GitX für GNOME (es funktioniert auch auf KDE usw.), der einen ziemlich farbigen Graphen zeigt.

Es ist aktiv entwickelt (Stand 2012). Damit können Sie die Commits (Diagrammknoten) entweder chronologisch oder topologisch sortieren und Commits ausblenden, die nicht zu einem ausgewählten Zweig führen.

Es funktioniert gut mit großen Repositories und komplexen Abhängigkeitsgraphen.

Beispiel-Screenshots mit den Repositorys linux-git und linux-2.6:

linux-git

linux-2.6

73

SourceTree ist wirklich gut. Es druckt ein gut aussehendes, mittelgroßes Verlaufs- und Zweigdiagramm aus: (Folgendes wird an einem experimentellen Git-Projekt ausgeführt, um nur einige Zweige zu sehen). Unterstützt Windows 7+ und Mac OS X 10.6+.

enter image description here

http://www.sourcetreeapp.com/

57

Ich habe gerade ein Tool geschrieben, das mit Hilfe von HTML/Canvas ein hübsches Git-Commit-Diagramm erzeugen kann.

Und stellen Sie ein jQuery-Plugin bereit, das die Verwendung erleichtert.

[github] https://github.com/tclh123/commits-graph

Vorschau:

preview

56
Harry Lee

git-forest ist ein hervorragendes Perl-Skript, das ich seit mehr als einem Jahr verwende, und ich verwende den Befehl git log kaum noch direkt.

Dies sind einige der Dinge, die ich an diesem Skript liebe:

  • Es werden Unicode-Zeichen verwendet, um die Linien in der Grafik zu zeichnen, wodurch die Linien der Linie stetiger aussehen.
  • Sie können --reverse mit der Grafikausgabe kombinieren, was mit dem regulären git log-Befehl nicht möglich ist.
  • Es verwendet intern git log, um die Liste der Commits zu erfassen, sodass alle Optionen, die Sie an git log übergeben, auch an dieses Skript übergeben werden können.

Ich habe einen Alias ​​mit git-forest wie folgt:

[alias]
tree = "forest --pretty=format:\"%C(red)%h %C(Magenta)(%ar) %C(blue)%an %C(reset)%s\" --style=15 --reverse"

So sieht die Ausgabe auf einem Terminal aus:

 enter image description here

53
Tuxdude

Basierend auf einem Graphviz-Skript, das ich in einer Antwort auf eine verwandte Frage gefunden habe, habe ich ein Ruby-Skript gehackt, das eine zusammenfassende Ansicht eines Git-Repositorys erstellt. Es beseitigt alle lineare Geschichte und zeigt nur "interessante" Commits, d. H. Solche mit mehreren Elternteilen, mehreren Kindern oder auf die durch einen Zweig oder ein Tag verwiesen wird. Hier ist ein Ausschnitt des Diagramms, das es für jquery generiert:

jquery sample

git-big-picture und BranchMaster sind ähnliche Werkzeuge, mit denen versucht wird, nur die übergeordnete Struktur eines Diagramms anzuzeigen, indem nur der Zusammenhang zwischen Tags, Verzweigungen, Zusammenführungen usw. angezeigt wird.

Diese Frage hat einige weitere Optionen.

41
Matt McHenry

Ich habe ein Web-Tool zum Konvertieren von Git-Protokollen in hübsche SVG-Diagramme geschrieben: Bit-Booster - Offline-Commit-Diagrammwerkzeug

Laden Sie die Ausgabe von git log --pretty='%h|%p|%d' direkt in das Tool und klicken Sie dann auf den Link "download graph.svg".

Das Tool ist rein clientseitig und daher werden keine Ihrer Git-Daten mit meinem Server geteilt. Sie können HTML + JS auch lokal speichern und mit den URLs "file: ///" ausführen. Verifiziert auf Chrome 48 und Firefox 43 auf Ubuntu 12.04.

Es generiert HTML-Code, der direkt in jede Seite gepostet werden kann (einschließlich der Blogspot-Engine für Blogspots!). Sehen Sie sich hier einige Blogbeiträge an:

http://bit-booster.blogspot.ca/

Hier ist ein Screenshot einer Beispiel-HTML-Datei, die vom Tool generiert wurde:

http://bit-booster.com/graph.html (das Werkzeug)

38

Kommt drauf an, wie sie aussahen. Ich benutze gitx was Bilder wie diese macht:

simple plot

Sie können git log --graph mit gitk auf einer 24-poligen Octopus-Fusion vergleichen (ursprünglich von http://clojure-log.n01se.net/date/2008-12-24.html ):

24-way git octopus merge. Original URL was <code>http://lwn.net/images/ns/kernel/gitk-octopus.png</code>

36
Dustin

Ich habe drei benutzerdefinierte Befehle hinzugefügt: git tree, git stree und git vtree. Ich werde sie in dieser Reihenfolge durchgehen.

[alias]
    tree = log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset) %C(auto)%d%C(reset)\n         %C(black)[%cr]%C(reset)  %x09%C(black)%an: %s %C(reset)'

enter image description here

Mit git stree und git vtree habe ich bash als Hilfe bei der Formatierung verwendet.

[alias]
    logx = log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset)+%C(dim black)(%cr)%C(reset)+%C(auto)%d%C(reset)++\n+++       %C(bold black)%an%C(reset)%C(black): %s%C(reset)'
    stree = !bash -c '"                                                                             \
        while IFS=+ read -r hash time branch message; do                                            \
            timelength=$(echo \"$time\" | sed -r \"s:[^ ][[]([0-9]{1,2}(;[0-9]{1,2})?)?m::g\");     \
            timelength=$(echo \"16+${#time}-${#timelength}\" | bc);                                 \
            printf \"%${timelength}s    %s %s %s\n\" \"$time\" \"$hash\" \"$branch\" \"\";          \
        done < <(git logx && echo);"'

git_stree


[alias]
    logx = log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset)+%C(dim black)(%cr)%C(reset)+%C(auto)%d%C(reset)++\n+++       %C(bold black)%an%C(reset)%C(black): %s%C(reset)'
    vtree = !bash -c '"                                                                             \
        while IFS=+ read -r hash time branch message; do                                            \
            timelength=$(echo \"$time\" | sed -r \"s:[^ ][[]([0-9]{1,2}(;[0-9]{1,2})?)?m::g\");     \
            timelength=$(echo \"16+${#time}-${#timelength}\" | bc);                                 \
            printf \"%${timelength}s    %s %s %s\n\" \"$time\" \"$hash\" \"$branch\" \"$message\";  \
        done < <(git logx && echo);"'

git_vtree


EDIT: Dies funktioniert mit git Version 1.9a. Der Farbwert 'auto' wird in dieser Version anscheinend debütiert. Es ist eine nette Ergänzung, da die Namen der Zweige eine andere Farbe erhalten. Dies erleichtert beispielsweise die Unterscheidung zwischen lokalen und entfernten Zweigstellen.

34
gospes

Für detailliertere Textausgaben versuchen Sie bitte: 

git log --graph --date-order -C -M --pretty=format:"<%h> %ad [%an] %Cgreen%d%Creset %s" --all --date=short

Sie können einen Alias ​​in $ HOME/.gitconfig schreiben

[alias]
    graph = log --graph --date-order -C -M --pretty=format:\"<%h> %ad [%an] %Cgreen%d%Creset %s\" --all --date=short
30
kaoru

gitg: Ein gtk-basierter Repository-Viewer. Das ist neu, aber interessant und nützlich
http://git.gnome.org/browse/gitg
Ich benutze es momentan

27
saeedgnu

Das ist meine Meinung zu dieser Angelegenheit:

Bildschirmfoto:

 Screenshot

Verwendungszweck:

git hist - Zeigt den Verlauf des aktuellen Zweigs an

git hist --all - Zeigt die Grafik aller Niederlassungen (einschließlich Fernbedienungen)

git hist master devel - Zeigt die Beziehung zwischen zwei oder mehr Zweigen an

git hist --branches - Zeigt alle lokalen Niederlassungen an

Fügen Sie --topo-order hinzu, um Commits topologisch statt nach Datum zu sortieren (Standard in diesem Alias).

Leistungen:

  • Sieht einfach aus wie --decorate, also mit separaten Farben für verschiedene Zweignamen
  • Fügt Committer-E-Mail hinzu
  • Fügt festes relatives und absolutes Datum hinzu
  • Sortiert Commits nach Datum 

Konfiguration:

git config --global alias.hist "log --graph --date-order --date=short \
--pretty=format:'%C(auto)%h%d %C(reset)%s %C(bold blue)%ce %C(reset)%C(green)%cr (%cd)'"
25
drzymala

Obwohl ich manchmal gitg benutze, komme ich immer wieder zur Kommandozeile:

[alias]
    #quick look at all repo
    loggsa = log --color --date-order --graph --oneline --decorate --simplify-by-decoration --all
    #quick look at active branch (or refs pointed)
    loggs  = log --color --date-order --graph --oneline --decorate --simplify-by-decoration
    #extend look at all repo
    logga  = log --color --date-order --graph --oneline --decorate --all
    #extend look at active branch
    logg   = log --color --date-order --graph --oneline --decorate
    #Look with date
    logda  = log --color --date-order --date=local --graph --format=\"%C(auto)%h%Creset %C(blue bold)%ad%Creset %C(auto)%d%Creset %s\" --all
    logd   = log --color --date-order --date=local --graph --format=\"%C(auto)%h%Creset %C(blue bold)%ad%Creset %C(auto)%d%Creset %s\"        
    #Look with relative date
    logdra = log --color --date-order --graph --format=\"%C(auto)%h%Creset %C(blue bold)%ar%Creset %C(auto)%d%Creset %s\" --all
    logdr = log --color --date-order --graph --format=\"%C(auto)%h%Creset %C(blue bold)%ar%Creset %C(auto)%d%Creset %s\"  

    loga   = log --graph --color --decorate --all

    # For repos without subject body commits (vim repo, git-svn clones)
    logt  = log --graph --color --format=\"%C(auto)%h %d %<|(100,trunc) %s\"
    logta  = log --graph --color --format=\"%C(auto)%h %d %<|(100,trunc) %s\" --all        
    logtsa = log --graph --color --format=\"%C(auto)%h %d %<|(100,trunc) %s\" --all --simplify-by-decoration 

Wie Sie sehen, ist es fast ein Tastendruck, der Aliase speichert, basierend auf:

  • --color: klarer Blick
  • --graph: visualisiere die eltern
  • --date-order: am verständlichsten Blick auf Repo
  • --decorate: wer ist wer
  • --oneline: Oftmals alles, was Sie über ein Commit wissen müssen
  • - vereinfachen durch Dekoration: einfach für den ersten Blick (nur Tags, relevante Zusammenführungen, Verzweigungen)
  • --all: Speichern von Tastatureingaben mit allen Aliasnamen mit und ohne diese Option
  • --date = relative (% ar): Aktivität im Repo verstehen (manchmal ist ein Zweig nur wenige Commits in der Nähe von master, aber vor Monaten von ihm) 

In der neuesten Version von git (1.8.5 und höher) können Sie von% C (automatisch) im Platzhalter für Platzhalter% d profitieren

Alles, was Sie brauchen, ist ein gutes Verständnis von gitrevisions , um alles zu filtern, was Sie brauchen (so etwas wie master..develop, wo --simplify-merges bei langfristigen Zweigen helfen könnte)

Die Macht hinter der Befehlszeile ist die schnelle Konfiguration, die auf Ihre Bedürfnisse zugeschnitten ist (verstehen Sie, dass ein Repo keine eindeutige Konfiguration des Schlüsselprotokolls ist, daher ist manchmal das Hinzufügen von --numstat, --raw oder --name-status erforderlich.) Hier git log und Aliasnamen sind schnell, leistungsfähig und (mit der Zeit) der schönste Graph, den Sie erreichen können. Noch mehr: Wenn die Ausgabe standardmäßig über einen Pager (weniger) angezeigt wird, können Sie immer schnell in Ergebnissen suchen. Nicht überzeugt? Sie können das Ergebnis immer analysieren mit Projekten wie gitgraph

24
albfan

Sehr geringfügige Änderung Slipp's geile Antwort , Sie können seine Aliase verwenden, um nur einen Zweig zu protokollieren:

[alias]
lgBranch1 = log --graph --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative
lgBranch2 = log --graph --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(bold white)— %an%C(reset)' --abbrev-commit
lg = !"git lg1"

Wenn Sie den --all weglassen, können Sie dies jetzt tun

git lgBranch1 <branch name>

oder auch

git lgBranch1 --all
17
Peter Ajtai

Ich habe diesen git log-Alias ​​in ~/.gitconfig, um den Diagrammverlauf anzuzeigen:

[alias]
l = log --all --graph --pretty=format:'%C(auto)%h%C(auto)%d %s %C(dim white)(%aN, %ar)'

Wenn dies festgelegt ist, gibt git l Folgendes aus:

 enter image description here

In Git 2.12 + können Sie sogar die Linienfarben des Diagramms mithilfe der Konfigurationsoption log.graphColors anpassen. 

Das Format der Protokolle ist ähnlich zu --oneline , wobei der Autorenname (unter Beachtung von .mailmap) und das relative Autorendatum hinzugefügt wird. Beachten Sie, dass die %C(auto)-Syntax, mit der Git angewiesen wird, die Standardfarben für Commit-Hash usw. zu verwenden, in Git> = 1.8.3 unterstützt wird.

14
Eugene Yarmash

GitGraph

Erzeugt eine PNG- oder SVG-Darstellung des Commit-Verlaufs Ihres Git-Repositorys.

https://code.google.com/p/gitgraph

12
EddieG098
git -c core.pager='less -SRF' log --oneline --graph --decorate

Dies ist meine Terminalvariante, ähnlich wie hier viele Antworten. Ich möchte die Flags anpassen, die an less übergeben werden, um das Word-Wrapping zu verhindern.

 example output

Ich habe dies für einen schnellen Zugriff auf einen Alias ​​gesetzt, da der Befehl etwas umständlich ist.

10
Andy

Haben Sie gitk oder gitk --all ausprobiert? Es hat jedoch keine Funktion zum Drucken/Speichern img als.

10
Adrian Panasiuk

Ich empfehle tighttps://github.com/jonas/tig , Ein viel besseres Befehlszeilenprogramm für git.

Sie können Homebrew verwenden, um Tig unter macOS zu installieren:

$ brew install tig
$ tig

 enter image description here

9
nodejh

Es gibt ein funky Git-Commit-Diagramm als eines der Demos der Raphael Web-Grafikbibliothek.

Die Demo ist statisch, aber es sollte leicht genug sein, den Code zu nehmen und ihre statischen Daten gegen einen Live-Datensatz auszutauschen. Ich denke, es sind nur Git-Commit-Daten im JSON-Format.

Die Demo ist hier: http://dmitrybaranovskiy.github.io/raphael/github/impact.html

6
Spudley

Versuchen Sie ditaa . Es kann jedes ASCII - Diagramm in ein Bild umwandeln. Obwohl es nicht für Git-Zweige gedacht ist, waren die Ergebnisse beeindruckt.

Quelle (txt-Datei):

        +--------+
        | hotfix |
        +---+----+
            |
--*<---*<---*
       ^ 
       |
       \--*<---*
               |
           +---+----+
           | master |
           +--------+

Befehl:

Java -jar ditaa0_9.jar ascii-graph.txt

Ergebnis:

 enter image description here

Es unterstützt auch Hintergrundfarben, gestrichelte Linien, verschiedene Formen und mehr. Siehe die Beispiele .

6
fracz

Ich kenne kein direktes Werkzeug, aber vielleicht können Sie ein Skript hacken, um die Daten in das Punktformat zu exportieren, und es mit graphviz rendern.

5
Thomas

Für OSX-Benutzer habe ich das @ gospes-Beispiel genommen und für gsed leicht geändert (gnu-sed wurde über Homebrew installiert) und die Farben angepasst (mit einem schwarzen Hintergrund zu arbeiten) das Beispiel, da es schwarzen Text auf einem Terminal mit schwarzem Hintergrund angibt).

[alias]
    # tree, vtree, stree support
    logx = log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset)+%C(bold black)(%cr)%C(reset)+%C(auto)%d%C(reset)++\n+++       %C(bold black)%an%C(reset)%C(bold black): %s%C(reset)'
    tree = log --all --graph --decorate=short --color --format=format:'%C(bold blue)%h%C(reset) %C(auto)%d%C(reset)\n         %C(bold black)[%cr]%C(reset)  %x09%C(bold black)%an: %s %C(reset)'
    stree = !bash -c '" \
    while IFS=+ read -r hash time branch message; do \
        timelength=$(echo \"$time\" | gsed -r \"s:[^ ][[]([0-9]{1,2}(;[0-9]{1,2})?)?m::g\"); \
        timelength=$(echo \"16+${#time}-${#timelength}\" | bc); \
        printf \"%${timelength}s    %s %s %s\n\" \"$time\" \"$hash\" \"$branch\" \"\"; \
    done < <(git logx && echo);"' | less -r
    vtree = !bash -c '" \
    while IFS=+ read -r hash time branch message; do \
      timelength=$(echo \"$time\" | gsed -r \"s:[^ ][[]([0-9]{1,2}(;[0-9]{1,2})?)?m::g\"); \
      timelength=$(echo \"16+${#time}-${#timelength}\" | bc); \
      printf \"%${timelength}s    %s %s %s\n\" \"$time\" \"$hash\" \"$branch\" \"$message\"; \
    done < <(git logx && echo);"' | less -r

Der Schlüssel für OSX ist, zuerst gnu sed (mit der Option -r) zu installieren. Am einfachsten mit Homebrew zu tun, das das vom System installierte sed nicht überschreibt, sondern gnu sed als "gsed" installiert. Hoffe das hilft @ SlippD.Thompson, der oben kommentiert über OSX nicht funktioniert.

4
markeissler

einige Aliase in ~/.oh-my-zsh/plugins/git/git.plugin.zsh

gke='\gitk --all $(git log -g --pretty=%h)'
glg='git log --stat'
glgg='git log --graph'
glgga='git log --graph --decorate --all'
glgm='git log --graph --max-count=10'
glgp='git log --stat -p'
glo='git log --oneline --decorate'
glog='git log --oneline --decorate --graph'
gloga='git log --oneline --decorate --graph --all'
glol='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit'
glola='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit --all'
4
shuaihanhungry

Beim Betrachten dieser Konversation wurde versucht, meinen Favoriten git-cola & git-dag zu verwenden. Das Ausführen von View->DAG... aus git-cola und Ersetzen von Log: master -- durch --all zeigt ein hübsches Diagramm mit allen Zweigen.

2

Zusätzlich zur Antwort von 'Slipp D. Thompson' schlage ich vor, dass Sie diesen Alias ​​hinzufügen, um dieselbe Verzierung zu erhalten, jedoch in einer einzigen Zeile durch Commit:

git config --global alias.tre "log --graph --decorate --pretty=oneline --abbrev-commit --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)'"
2
Lyes CHIOUKH

Wenn Ihr Repository auf Gitlab liegt, können Sie dessen Diagrammdarstellung verwenden, da diese in Ihrem Browser als SVG-Datei dargestellt wird.

  • Gehen Sie zur Diagrammansicht Ihres Repositorys, z. https://gitlab.com/gitlab-org/gitter/webapp/network/develop

  • Scrolle die Grafik nach unten (es wird faul geladen!)

  • Verwenden Sie den Inspektor Ihres Browsers, um das SVG-Element in eine neue Datei zu kopieren

  • Öffnen Sie es in einem Renderer Ihrer Wahl, z. Inkscape

 enter image description here

0
bugmenot123