Hübsche Git-Zweigdiagramme

Lesezeit: 7 Minuten

Hubsche Git Zweigdiagramme
krosenvold

Ich habe einige Bücher und Artikel gesehen, die einige wirklich hübsch aussehende Grafiken von Git-Branches und -Commits enthalten. Wie kann ich hochwertige druckbare Bilder der Git-Geschichte erstellen?

  • Ich habe ein Python-Skript erstellt, um ein Graphiz-Diagramm zu erstellen! Schau mal. github.com/chode/git-graph

    – Stephan Bechter

    14. September 2014 um 8:13 Uhr

  • Wenn es hochwertig und druckbar sein soll, mein Tool (bit-booster.com/graph.html) wandelt “git log” in SVG um. Weitere Informationen finden Sie in meiner Antwort.

    – G. Sylvie Davies

    13. Oktober 2016 um 18:44 Uhr


  • Suchen Sie ein Tool, um Ihre eigene Git-Historie zu visualisieren – oder – ein Charting-Tool, mit dem Sie hübsche “Git-Zweige” zeichnen können?

    – Uri Abramson

    18. Dezember 2016 um 17:03 Uhr

  • Mögliches Duplikat von Visualizing branch topology in git

    – trblnc

    30. Januar 2017 um 11:48 Uhr

  • Versuchen tig, github.com/jonas/tig

    – Tobi

    6. Oktober 2019 um 19:16 Uhr

Hubsche Git Zweigdiagramme
Patoshi パトシ

Viele der Antworten hier sind großartig, aber für diejenigen, die nur eine einfache, auf den Punkt gebrachte Antwort wünschen, ohne Aliase oder irgendetwas Extras einrichten zu müssen, hier ist sie:

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

Nicht jeder würde a tun git log die ganze Zeit, aber wenn Sie es brauchen, denken Sie einfach daran:

Ein Hund” = git log —einll —Decorate —ÖNeline —gRaph

Geben Sie hier die Bildbeschreibung ein

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

    – fracz

    9. Februar 2017 um 22:37 Uhr


  • Ich habe nach dem gesucht --all so lange bin ich kurz davor zu weinen (T_T) DANKE!

    – Felipe Gerhard

    21. September 2018 um 16:44 Uhr

  • Zusammenfassung der verschiedenen Optionen: –all = Tut so, als ob alle Refs in refs/ auf der Befehlszeile als commit> aufgelistet wären. –no-decorate, –decorate[=short|full|no] = Drucken Sie die Ref-Namen aller angezeigten Commits aus. Wenn short angegeben ist, werden die Ref-Namenspräfixe refs/heads/, refs/tags/ und refs/remotes/ nicht gedruckt. Wenn vollständig angegeben ist, wird der vollständige Referenzname (einschließlich Präfix) gedruckt. –oneline = Dies ist eine Abkürzung für “–pretty=oneline –abbrev-commit”, die zusammen verwendet werden. –graph= Zeichnet eine textbasierte grafische Darstellung des Commit-Verlaufs

    – gebbissimo

    9. November 2018 um 8:45 Uhr

  • beste Antwort auf SO. Danke, dass du es unbeschwert gehalten hast.

    – Tobias Feil

    13. Februar 2019 um 12:48 Uhr

  • Ich denke, “–decorate” ist jetzt standardmäßig enthalten. Aber ich werde mir das Akronym trotzdem so merken!

    – Josiah Yoder

    24. Juli 2019 um 20:11 Uhr

  • Ich mag diese beiden, da sie sich gut zwischen ‘git log’ (kurz) und ‘git log’ (lang) aufteilen, sodass ich das kurze nennen kann (oneline)-Version die meiste Zeit, aber wenn ich mehr Details benötige, verwende die lange Version mit vollständigen Commit-Details. Dann habe ich zwei schöne Mappings von <leader>gl (kurz und <leader>gll (lang) in Vim.

    – icc97

    7. November 2018 um 10:05 Uhr

  • es ist möglich, zu ignorieren Author Sektion?

    – Alper

    7. Juni 2021 um 13:21 Uhr

1646891891 844 Hubsche Git Zweigdiagramme
fracz

Gitgraph.js ermöglicht es, hübsche Git-Zweige ohne Repository zu zeichnen. Schreiben Sie einfach einen JavaScript-Code, der Ihre Branches und Commits konfiguriert, und rendern Sie ihn im Browser. Interaktive Dokumente stehen zur Verfügung.

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

mit Gitgraph.js generiertes Beispieldiagramm

Oder mit metro Vorlage:

GitGraph.js-Metro-Design

Oder mit Commit-Nachrichten, Autoren und Tags:

GitGraph mit Commit-Meldungen

Testen Sie es mit JSFiddle.

Generieren Sie es mit Git-Grapher von @bsara.

  • Juhu, das ist total erstaunlich! Gepostet es in Geige jsfiddle.net/guan1oz1 damit Sie es gleich testen können.

    – berkus

    5. November 2014 um 0:46 Uhr

  • Die Pfeile sollten jedoch auf Eltern zeigen, nicht auf Kinder.

    – jub0bs

    4. Februar 2015 um 19:45 Uhr

  • @Jubobs: Guter Punkt. Das ist eine häufige Hürde für Leute, die versuchen, Git zu verstehen: Sie denken an die Abfolge der Zeit statt an die Vererbung. Klarzustellen, dass (fast) alles in Git relativ zu etwas Vorhergehendem ist, hilft allen anderen Teilen, an ihren Platz zu kommen.

    – Slipp D. Thompson

    2. März 2015 um 23:09 Uhr


  • @fracz: Das ist wirklich cool. Danke. Ein Vorschlag jedoch: Bitte erwähnen Sie, dass, obwohl die Testwebseite nur keinen Text anzeigt, gitgraph.js Commit-Nachrichten, Tags usw. anzeigt, wenn man sie herunterlädt und lokal öffnet. — Ich schlage dies vor, weil ich zuerst dachte, dass es keinen Text anzeigen kann und daher nicht meinen Anforderungen entspricht. Glücklicherweise habe ich nicht aufgegeben und gitgraph.js auf meinen Laptop heruntergeladen. Es stellte sich heraus, dass die tatsächliche Ausgabe ziemlich erstaunlich ist und genau das, was ich will. 🙂

    – Lungengang Fang

    10. Dezember 2015 um 7:30 Uhr


  • In Bezug auf die Pfeilrichtung aus den Dokumenten: * @param {Boolean} [options.reverseArrow = false] – Lassen Sie die Pfeile auf Vorfahren zeigen, wenn dies zutrifft

    – Scott

    14. April 2016 um 15:32 Uhr

1646891893 658 Hubsche Git Zweigdiagramme
Gemeinschaft

Darauf gebaut TikZ & PGF, gitdags ist ein kleines LaTeX-Paket, mit dem Sie mühelos Vektorgrafik-Commit-Graphen und mehr erstellen können.

Die automatische Generierung des Commit-Graphen eines bestehenden Repositorys ist nicht der Zweck von gitdags; die Graphen, die es erzeugt, sind nur für gedacht bildungs ​​Gründe.

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

  • Wie kann ich einen Bugfix auf Master machen und ihn in meine weniger stabilen Zweige integrieren?
  • Wie funktioniert git commit –amend genau?
  • Warum sagt mir Git „Derzeit auf keinem Branch“, nachdem ich „git checkout origin/“ ausgeführt habe?
  • Was ist der Unterschied zwischen dem Zusammenführen von Master in Branch und dem Zusammenführen von Branch in Master?
  • Git rebase –preserve-merges schlägt fehl

Hier ist ein Beispiel für ein solches Diagramm, das die Auswirkungen einer einfachen Rebase demonstriert:

Geben Sie hier die Bildbeschreibung ein

\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}

  • Juhu, das ist total erstaunlich! Gepostet es in Geige jsfiddle.net/guan1oz1 damit Sie es gleich testen können.

    – berkus

    5. November 2014 um 0:46 Uhr

  • Die Pfeile sollten jedoch auf Eltern zeigen, nicht auf Kinder.

    – jub0bs

    4. Februar 2015 um 19:45 Uhr

  • @Jubobs: Guter Punkt. Das ist eine häufige Hürde für Leute, die versuchen, Git zu verstehen: Sie denken an die Abfolge der Zeit statt an die Vererbung. Klarzustellen, dass (fast) alles in Git relativ zu etwas Vorhergehendem ist, hilft allen anderen Teilen, an ihren Platz zu kommen.

    – Slipp D. Thompson

    2. März 2015 um 23:09 Uhr


  • @fracz: Das ist wirklich cool. Danke. Ein Vorschlag jedoch: Bitte erwähnen Sie, dass, obwohl die Testwebseite nur keinen Text anzeigt, gitgraph.js Commit-Nachrichten, Tags usw. anzeigt, wenn man sie herunterlädt und lokal öffnet. — Ich schlage dies vor, weil ich zuerst dachte, dass es keinen Text anzeigen kann und daher nicht meinen Anforderungen entspricht. Glücklicherweise habe ich nicht aufgegeben und gitgraph.js auf meinen Laptop heruntergeladen. Es stellte sich heraus, dass die tatsächliche Ausgabe ziemlich erstaunlich ist und genau das, was ich will. 🙂

    – Lungengang Fang

    10. Dezember 2015 um 7:30 Uhr


  • In Bezug auf die Pfeilrichtung aus den Dokumenten: * @param {Boolean} [options.reverseArrow = false] – Lassen Sie die Pfeile auf Vorfahren zeigen, wenn dies zutrifft

    – Scott

    14. April 2016 um 15:32 Uhr

1646891894 787 Hubsche Git Zweigdiagramme
AL

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

Es wird aktiv weiterentwickelt (Stand 2012). Damit können Sie die Commits (Graph Nodes) entweder chronologisch oder topologischund Commits ausblenden, die nicht zu einem ausgewählten Zweig führen.

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

Beispiel-Screenshots, die die Repositories linux-git und linux-2.6 zeigen:

Linux-git

Linux-2.6

986510cookie-checkHübsche Git-Zweigdiagramme

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy