1088 Stimmen

Visualisierung der Zweigtopologie in Git

Ich spiele mit Git isoliert auf meinem eigenen Rechner und finde es schwierig, ein mentales Modell aller meiner Zweige und Übertragungen zu behalten. Ich weiß, ich kann eine git log aber gibt es eine Möglichkeit, die gesamte Topographie der Verzweigungen zu sehen, so etwas wie diese ASCII-Karten, die überall zur Erklärung von Verzweigungen verwendet zu werden scheinen?

      .-A---M---N---O---P
     /     /   /   /   /
    I     B   C   D   E
     \   /   /   /   /
      `-------------'

Ich habe das Gefühl, dass jemand, der mein Repository aufgreift, Schwierigkeiten hätte, genau zu verstehen, was vor sich geht.

Ich schätze, ich bin von AccuRevs Stream-Browser ...

0 Stimmen

1 Stimmen

@leif81, ein halbes Duplikat, für mich. @Masi schloss gitk in seiner Frage ausdrücklich aus.

0 Stimmen

Ist damit Ihre Frage beantwortet? Hübsche Git-Zweigdiagramme

61voto

pylang Punkte 33775

Werfen Sie einen Blick auf GitKraken - eine plattformübergreifende grafische Benutzeroberfläche, die die Topologie in übersichtlicher Form darstellt.

Topology

Hier ist eine kurze Video-Tutorial über einige erweiterte Funktionen.

Hinweis: Eine Anmeldung ist erforderlich.

13 Stimmen

Wie kommt es, dass dieser Thread GitKraken hat, aber nicht den älteren und kostenlosen SourceTree? (Ich weiß, ich weiß, Atlassian macht nicht immer alles richtig. Aber SourceTree ist ein ziemlich großartiges Tool zur Visualisierung).

0 Stimmen

@XML Es ist nicht für Linux verfügbar.

53voto

Yeo Punkte 10530

99,999% meiner Zeit verbringe ich damit, mir die Geschichte von git lg und die 0,001% sind durch git log .

Ich möchte nur zwei Protokoll-Aliase mitteilen, die nützlich sein könnten (konfigurieren von .gitconfig):

[Alias]
     lg = log --graph --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
     hist = log --graph --full-history --all --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
  • git lg wird der aktuelle Zweigverlauf angezeigt.
  • git hist wird die gesamte Historie des Zweigs angezeigt.

45voto

VonC Punkte 1117238

Ich mag, mit git log zu tun:

 git log --graph --oneline --branches

(auch mit --all, um auch entfernte Zweige anzuzeigen)

Funktioniert mit aktuellen Git-Versionen: eingeführt seit 1.6.3 ( Donnerstag, 7. Mai 2009 )

  • " --pretty=<style> Die Option "log" der Befehlsfamilie kann jetzt als "" geschrieben werden. --format=<style> ".
    Darüber hinaus, --format=%formatstring ist eine Kurzform für --pretty=tformat:%formatstring .

  • " --oneline " ist ein Synonym für " --pretty=oneline --abbrev-commit ".

PS D:\git\tests\finalRepo> git log --graph --oneline --branches --all
* 4919b68 a second bug10 fix
* 3469e13 a first bug10 fix
* dbcc7aa a first legacy evolution
| * 55aac85 another main evol
| | * 47e6ee1 a second bug10 fix
| | * 8183707 a first bug10 fix
| |/
| * e727105 a second evol for 2.0
| * 473d44e a main evol
|/
* b68c1f5 first evol, for making 1.0

Sie können auch den Zeitraum der Protokollanzeige begrenzen (Anzahl der Übertragungen):

PS D:\git\tests\finalRepo> git log --graph --oneline --branches --all -5
* 4919b68 a second bug10 fix
* 3469e13 a first bug10 fix
* dbcc7aa a first legacy evolution
| * 55aac85 another main evol
| | * 47e6ee1 a second bug10 fix

(nur die letzten 5 Übertragungen anzeigen)


Was mir an der gegenwärtig gewählten Lösung nicht gefällt, ist:

 git log --graph

Es werden viel zu viele Informationen angezeigt (wenn ich nur eine kurze Zusammenfassung sehen will):

PS D:\git\tests\finalRepo> git log --graph
* commit 4919b681db93df82ead7ba6190eca6a49a9d82e7
| Author: VonC <vonc@laposte.net>
| Date:   Sat Nov 14 13:42:20 2009 +0100
|
|     a second bug10 fix
|
* commit 3469e13f8d0fadeac5fcb6f388aca69497fd08a9
| Author: VonC <vonc@laposte.net>
| Date:   Sat Nov 14 13:41:50 2009 +0100
|
|     a first bug10 fix
|

gitk ist großartig, zwingt mich aber dazu, die Shell-Sitzung zu verlassen und in ein anderes Fenster zu wechseln, während es oft ausreicht, die letzten n Commits schnell anzuzeigen.

0 Stimmen

Ich wähle auch diese Methode, aber ich habe einen Alias erstellt, so dass die Eingabe von "git graph" dasselbe ist wie die Ausführung von "git log --graph --decorate --oneline".

0 Stimmen

@ConnerPike Gute Idee. Ich habe selbst den Alias 'lg': siehe stackoverflow.com/a/3667139/6309

41voto

Jack Senechal Punkte 1520

Gitg ist ein großartiges Werkzeug für Linux, ähnlich wie Gitx für OS X. Führen Sie einfach "gitg" in der Befehlszeile aus, und zwar irgendwo in der Baumstruktur Ihres Repositorys (dasselbe gilt für gitx).

3 Stimmen

Mit anderen Worten: gitg hat ein Dropdown-Menü, in dem man auswählen kann, welcher Zweig angezeigt werden soll. Dieses Dropdown-Menü hat auch eine Option "Alle".

1 Stimmen

Oder Sie können es mit gitg --all wenn Sie nicht im Dropdown-Menü herumwühlen wollen.

29voto

Ein gutes webbasiertes Tool ist ungit . Es läuft auf jeder Plattform, die Node.js und Git unterstützt. Es gibt ein Video wie es funktioniert, für diejenigen, die so etwas einfacher finden als zu lesen...

Enter image description here

0 Stimmen

Ich benutze es. Funktioniert gut bei kleinen Projekten - wenn es nicht zu viele Zweige gibt. Leider ist es bei 20-50 offenen Zweigen unbrauchbar

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X