visual Leitfaden zum Verständnis von Gitk?




visual git (4)

Ich stelle git einem Team von Entwicklern vor und ich finde, dass gitk ein erstaunliches Werkzeug ist. Es ist auch ziemlich schwer zu verstehen, da das Verstehen von Gitk ein Verständnis sowohl der Git-Geschichte als auch des Betrachter-Werkzeugs selbst erfordert.

Hat irgendjemand irgendwelche guten Verweise auf so etwas wie einen "Anfängerleitfaden zu git history with gitk"?


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

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

  1. Im oberen linken Bereich wird die Reihe der Commits für dieses Repository angezeigt, wobei die neueste oben angezeigt wird.
  2. Es gab drei Commits, alle von Tony Stark.
  3. Die Commit-Nachricht für das letzte Commit war "drittes Commit"
  4. Es gibt eine einzige lokale Verzweigung namens "Master", die auf den letzten Commit verweist
  5. Es gibt einen einzelnen Remote-Referenzzweig: den "Master" -Abzweig vom Remote-Repository namens "Ursprung", er zeigt auch auf den letzten Commit
  6. Der gelbe Punkt neben dem oberen Commit zeigt an, dass sich der Snapshot momentan in meinem Arbeitsordner (HEAD genannt) befindet.
  7. Ich habe das zweite Commit hervorgehoben, damit ich seine Details im unteren Bereich sehen kann
  8. Der Commit-SHA (eindeutige Kennung, ähnlich der Subversion-Revisionsnummer) des zweiten Commits ist
    3d024dd9e4a83d8c6a9a143a68b75d4b872115a6
  9. Unten rechts wird die Liste der Dateien angezeigt, auf die sich das zweite Commit auswirkt
  10. Die untere linke Seite zeigt die Commit-Details einschließlich des vollständigen Diff
  11. Wenn Sie auf eine Datei im unteren rechten Bereich klicken, scrollt das Diff im unteren linken Bereich zum entsprechenden Abschnitt 12.

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

So weit ich gekommen bin - der richtige Blick auf den Baum ist (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ürden auch geschätzt werden.

Der Baum repräsentiert den aktuellen Status des Repositorys. Was wäre toll, wenn wir in der Lage wären zu sagen, was passiert ist, indem wir uns die Baumansicht angesehen haben.

Vielen Dank

v.


Ich habe noch nie etwas speziell für Gitk gesehen. Hier ist ein Stich, von einem "wie funktioniert es" Sicht. Wenn Sie die Befehle kennen, die hinter allem stehen (oder zumindest im Allgemeinen gleichwertig sind), lernen Sie, die Befehlszeilentools einfacher zu verwenden, und zeigt Ihnen auch, wo Sie in der Dokumentation nachsehen können, um gitk besser zu verstehen!

Dateimenü

Das hat sich in den letzten Hauptversionen etwas geändert - ich beschreibe den aktuellen Stand.

  • update und reload: Das ist wahrscheinlich die verwirrendste Sache. Neu laden aktualisiert alles so, als ob Sie das Programm mit der gleichen Konfiguration gestartet hätten. Dies bedeutet, wenn eine Verzweigung entfernt / rebasiert wurde, wenn einige Commits jetzt hängen, sehen Sie sie nicht mehr. Update hingegen aktualisiert alle Informationen, zeigt jedoch weiterhin alle zuvor angezeigten Commits an. Dies ist eine ausgezeichnete Sache, wenn Sie eine Neuausrichtung durchführen und sicherstellen möchten, dass Sie nicht versaut haben - Sie können sowohl die ursprüngliche als auch die reverse Version sehen.

  • Referenzen: ziemlich offensichtlich. Referenzen enthalten Tags und Zweige (die entfernt sein können). Sie können sie erneut lesen und auf einen bestimmten Eintrag klicken, um ihn im Verlauf anzuzeigen.

Ansichten

Wie die man-Seite sagt, nimmt gitk git-rev-list Optionen, um anzugeben, welcher Verlauf angezeigt werden soll. Diese können auch interaktiv im Menü "Ansicht" eingestellt werden. Die man-Seite ist ein ausgezeichneter Ort, um mehr Informationen über die Möglichkeiten zu finden, wie man Ansichten kontrollieren kann (meistens im Commit-Limiting-Bereich). Wenn du schon einmal auf git-log geschaut hast, wirst du eine Menge davon gesehen haben.

Hilfe

Hier gibt es eine Liste mit Tastaturbelegungen! Süss.

Kontextmenü

Dies stellt einige gebräuchliche git-Porzellankommandos dar, im Allgemeinen in einer gemeinsamen / Standardbetriebsart. Sie aufzulisten, wird Ihnen zumindest helfen, die richtige Dokumentation zu finden, um zu verstehen, was sie tun, wenn Sie das nicht bereits tun!

  • git-diff (Diff dieses <-> ausgewählt
  • git-format-patch (make patch)
  • git-tag (Tag erstellen)
  • git-diff-tree (schreibt Commit in Datei, selten benutzt)
  • git-branch
  • git-cherry-pick
  • git-reset (setzt den Zweig hier zurück) Dies fordert Sie auf weich, gemischt oder hart mit einer kurzen Erinnerung dessen, was jeder tut. Längere Beschreibung auf der man-Seite, aber natürlich müssen Sie das Konzept des Index verstehen, um es wirklich zu bekommen.

Das "mark a commit" und zugehörige Befehle sollten an dieser Stelle selbsterklärend sein.

Im Kontextmenü für eine Verzweigung haben wir git-checkout und den -d (delete) Modus von git-branch.

Mittelteil

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

  • Vorwärts / Zurück-Tasten, Zeilennummer ... offensichtlich!

  • Finden! Die Optionen hier sind wieder ziemlich selbsterklärend, aber für jedermanns Ausbildung sind sie analog zu git-log Parametern: "containing" ist --grep , "touching paths" sind die Argumente, und String hinzufügen / entfernen ist -S ( Spitzhacke).

Nachrichten- / Diff-Fenster

Hier haben wir die Commit-Nachricht zusammen mit der Ausgabe von git-diff - das ist etwas wie git-log -p , mit ein wenig mehr:

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

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


Das einzige, was mir an der gitk-Oberfläche nützlich ist, ist die nette (bunte) Filialübersicht.

Wenn Sie eine GUI für Git wollen, überprüfen Sie TortoiseGit auf Windows oder GitX auf Mac oder QGit auf Linux.





gitk