Leitfaden zum Verständnis von Gitk? [geschlossen]

82

Ich stelle git einem Entwicklerteam vor und finde, dass gitk ein erstaunliches Werkzeug ist. Es ist auch ziemlich schwer zu verstehen, da das Verständnis von Gitk ein Verständnis sowohl des Git-Verlaufs als auch des Viewer-Tools selbst erfordert.

Hat jemand gute Hinweise auf so etwas wie einen "Anfängerleitfaden zur Git-Geschichte mit Gitk"?

Krosenvold
quelle
Der Blog lostechies.com/joshuaflanagan/2010/09/03/… führt Sie durch die Präsentation von gitk und hilft möglicherweise dabei, das Kontextmenü von gitk zu verstehen.
Koppor

Antworten:

92

Ich habe noch nie etwas speziell für Gitk gesehen. Hier ist ein Stich aus der Sicht "Wie funktioniert es?". Wenn Sie die Befehle kennen, die hinter allem stehen (oder zumindest im Allgemeinen gleichwertig sind), können Sie die Verwendung von Befehlszeilentools einfacher erlernen und in der Dokumentation nachsehen, wo Sie gitk besser verstehen können!

Dateimenü

Dies hat sich in den letzten Hauptversionen etwas geändert - ich beschreibe den aktuellen Status.

  • aktualisieren und neu laden: Dies ist wahrscheinlich die verwirrendste Sache. Beim erneuten Laden wird alles aktualisiert, als ob Sie das Programm mit derselben Konfiguration neu gestartet hätten. Das heißt, wenn ein Zweig entfernt / neu basiert wurde und einige Commits jetzt baumeln, sehen Sie sie nicht mehr. Aktualisieren hingegen aktualisiert alle Informationen, zeigt jedoch weiterhin alle zuvor angezeigten Commits an. Dies ist eine hervorragende Option, wenn Sie eine Neubasierung durchführen und sicherstellen möchten, dass Sie nichts falsch gemacht haben. Sie können sowohl die Originalversion als auch die Neufassung sehen.

  • Referenzen: ziemlich offensichtlich. Zu den Referenzen gehören Tags und Zweige (die möglicherweise entfernt sind). Sie können sie erneut lesen und auflisten, um auf eine bestimmte zu klicken und sie im Verlauf anzuzeigen.

Ansichten

Wie in der Manpage angegeben , verwendet gitk git-rev-list- Optionen, um anzugeben, welcher Verlauf angezeigt werden soll. Diese können auch interaktiv im Menü "Ansicht" eingestellt werden. Die Manpage ist ein ausgezeichneter Ort, um weitere Informationen darüber zu erhalten, wie Sie Ansichten steuern können (meistens im Abschnitt zum Festschreiben von Commits). Wenn Sie sich das schon einmal angesehen git-loghaben, haben Sie viel davon gesehen.

Hilfe

Hier finden Sie eine Liste der Tastenkombinationen! Süss.

Kontextmenü

Hier werden mehrere gängige Git-Porzellan-Befehle angezeigt, die sich im Allgemeinen in einem allgemeinen / Standard-Betriebsmodus befinden. Wenn Sie sie auflisten, finden Sie zumindest die richtige Dokumentation, um zu verstehen, was sie tun, wenn Sie dies nicht bereits tun!

  • git-diff (Diff this <-> ausgewählt
  • Git-Format-Patch (Patch erstellen)
  • Git-Tag (Tag erstellen)
  • git-diff-tree (Schreib-Commit in Datei, selten verwendet)
  • Git-Zweig
  • Git-Cherry-Pick
  • git-reset (Zweig auf hier zurücksetzen) Dies fordert Sie zu weich, gemischt oder hart auf, mit einer kurzen Erinnerung daran, was jeder tut. Längere Beschreibung auf der Manpage, aber natürlich muss man das Konzept des Index verstehen, um es wirklich zu bekommen.

Das "Markieren eines Commits" und zugehörige Befehle sollten an dieser Stelle selbsterklärend sein.

Im Kontextmenü für einen Zweig haben wir Git-Checkout und den -d(Lösch-) Modus von Git-Zweig.

Mittelteil

  • SHA1 ID: Der Hash des aktuellen Commits. Sehr nützlich zum Kopieren / Einfügen in ein Terminal, um eine Aktion für ein bestimmtes Commit auszuführen, das Sie mit gitk gesucht haben. Sie können hier auch Hashes einfügen.

  • Vorwärts- / Rückwärtsschaltflächen, Zeilennummer ... offensichtlich!

  • Finden! Die Optionen hier sind wieder ziemlich selbsterklärend, aber für die Ausbildung aller sind sie analog zu Git-Log- Parametern: "Enthalten" ist --grep, "Pfade berühren" sind die Argumente und Hinzufügen / Entfernen von Zeichenfolgen ist -S(Spitzhacke).

Nachrichten- / Diff-Bereich

Hier haben wir die Commit-Nachricht zusammen mit der Ausgabe von git-diff - das ist so etwas wie verwenden git-log -p, mit einem kleinen Extra:

  • "Zweige" entspricht git branch -a --contains=<commit>

  • "Precedes" / "Follows" entspricht git describe [--contains] <commit>( git- description )

Cascabel
quelle
Fair genug für Gitk-Menübefehle, +1 dafür. Du machst es gut im "Gitk" -Teil, aber ich hatte wirklich gehofft, eine Erklärung für die Kombination von Gitk und Geschichte zu finden.
Krosenvold
Ich möchte dies zu einer besseren Antwort machen! Ich glaube, ich bin mir nicht ganz sicher, was du mit Erklärung der Git-Geschichte meinst. Ist es das Konzept des Verzweigens und Zusammenführens, das erklärt werden muss? Die Tatsache, dass Commits durch ihren Hash direkt vom vorherigen Commit abhängen? Es scheint, dass, wenn Sie die Geschichte buchstäblich auf dem Bildschirm sehen, nicht viel zu erklären ist.
Cascabel
Es tut mir leid, vielleicht bin ich stumpf, aber ich verstehe nicht, wie man nur git commit -aoder sogar git addin gitk. Fehlt mir etwas?
Ubershmekel
2
@ubershmekel gitk macht keines dieser Dinge; Wenn Sie eine GUI für sie wollen, ist die eingebaute git gui. Bei dieser Frage geht es jedoch nur um gitk, und gitk ist im Wesentlichen ein Tool zum Durchsuchen des Verlaufs (mit ein wenig Verzweigungsmanipulation).
Cascabel
24

Hier ist eine Einführung in die Visualisierung der Filialgeschichte in gitk mit Screenshots.

http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/

  1. Im oberen linken Bereich werden die Commits für dieses Repository angezeigt, wobei das aktuellste oben angezeigt wird.
  2. Es gab drei Commits, alle von Tony Stark.
  3. Die Festschreibungsnachricht für das letzte Festschreiben lautete "drittes Festschreiben".
  4. Es gibt einen einzelnen lokalen Zweig mit dem Namen "master", der auf das letzte Commit verweist
  5. Es gibt einen einzelnen Remote-Referenzzweig: Der "Master" -Zweig aus dem Remote-Repository mit dem Namen "origin" verweist auch auf das letzte Commit
  6. Der gelbe Punkt neben dem oberen Commit zeigt an, dass sich der Snapshot derzeit in meinem Arbeitsordner befindet (als HEAD bezeichnet).
  7. Ich habe das zweite Commit hervorgehoben, damit ich seine Details im unteren Bereich sehen kann
  8. Die Commit-SHA (eindeutige Kennung, ähnlich der Subversions-Revisionsnummer) des zweiten Commits lautet
    3d024dd9e4a83d8c6a9a143a68b75d4b872115a6
  9. Unten rechts wird die Liste der Dateien angezeigt, die vom zweiten Commit betroffen sind
  10. Unten links werden die Commit-Details einschließlich des vollständigen Diff angezeigt
  11. Durch Klicken auf eine Datei im unteren rechten Bereich wird der Unterschied im unteren linken Bereich zum entsprechenden Abschnitt 12 verschoben.
idursun
quelle
3

Was Anfänger wirklich in Bezug auf "Kombination von Gitk und Geschichte" verwenden könnten, ist eine spezifische Erklärung, wie man erkennt, was passiert ist, wenn man sich die Gitk-Baumansicht ansieht.

Soweit ich weiß, ist der richtige Weg, den Baum zu betrachten, (natürlich):

 1. each node is a commit
 2. ultimate parent is at the bottom
 3. direct child to a commit is the one that happened first in the same branch (no matter who did it)
 4. the node with 2 or more children indicates ... ?
 5. merge commit node has 2 parents.
 6. rebase is recognized ... ?

Screenshots wären ebenfalls willkommen.

Der Baum repräsentiert tatsächlich den aktuellen Status des Repositorys. Was großartig wäre, wäre, wenn wir anhand der Baumansicht erkennen könnten, was passiert ist.

Vielen Dank

v.

Tishma
quelle
1
4. ... eine Niederlassung, 6. ... überhaupt nicht, da sie nur bestehende Commits neu ordnet
centic
1

Das einzige, was ich an der Gitk-Oberfläche nützlich finde, ist die schöne (farbenfrohe) Zweigübersicht.

Wenn Sie eine GUI für Git möchten, überprüfen Sie TortoiseGit unter Windows oder GitX unter Mac oder QGit unter Linux.

Davy Landman
quelle
4
Ich denke, das ist ein voreiliges Urteil. Sicher, der Action Builder ist cool, aber viele dieser integrierten Funktionen im Gitk-Kontextmenü fehlen. gitk bietet eine sehr einfache Möglichkeit, Zweige mit visuellem Feedback zu bearbeiten, was besonders für neue Benutzer nützlich ist.
Cascabel
1
Ich mag die Cli ein bisschen mehr, aber manchmal rufe ich Gitk auf, nur um die Zweige und Zusammenführungen zu sehen. Ich würde die Gitk-Oberfläche nicht für neue Benutzer empfehlen. Wahrscheinlich abschrecken?
Davy Landman
Seltsamerweise denke ich, dass Sie beide Recht haben.
InnaM