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?
Hübsche Git-Zweigdiagramme
krosenvold
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
-
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
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);
Oder mit metro
Vorlage:
Oder mit Commit-Nachrichten, Autoren und Tags:
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
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:
\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
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:
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