Repository & Historie

Der Commit-Graph

Branches, Merges und Octopus-Merges sauber gezeichnet, hell oder dunkel. Das Rendering ist gefenstert, deshalb scrollt ein Repository mit hunderttausend Commits wie eines mit hundert.

Commit-Graph, hell Commit-Graph, dunkel

Navigieren

  • ↑ ↓ (oder j k) bewegen die Auswahl.
  • ⌘/Ctrl-Klick nimmt einen Commit in eine Mehrfachauswahl auf oder wieder heraus; ⇧-Klick nimmt einen Bereich. Mit mehreren ausgewählten Commits kannst du per Rechtsklick ein Cherry-Pick auf den aktuellen Branch machen, eine zusammenhängende Folge squashen, einen kombinierten Patch exportieren oder ihre SHAs kopieren.
  • Commits, die mit deinem letzten Fetch oder Pull hereinkamen, werden als neu markiert. Die, die noch nicht im ausgecheckten Branch stecken, bleiben leicht durchscheinend, bis ein Pull sie holt.
  • Rechtsklick auf einen Commit für Ändern, Rückgängig, Auf Commit zurücksetzen… und Auf GitHub anzeigen, dazu Checkout, Cherry-Pick, Revert, Branch, Tag und Kopieren. Unsichere Aktionen bleiben sichtbar und werden deaktiviert.

Ihn zeigen lassen, was du willst

  • Der Graph-Fokus entscheidet, wie viel Historie gezeichnet wird — Einstellungen → Themes → Graph oder das Zahnradmenü in der Kopfzeile des Graphen. Alles zeichnet alles; Lineare Historie (First-Parent) lässt nur den Hauptstrang übrig; Zusammengeführte Branches ausblenden behält den Hauptstrang plus die noch offenen Branches; Solo-Modus behält deinen Branch, deine markierten Branches und den Standard-Branch.

    Gefiltert wird nur, was das Log bereits geladen hat. Zusammengeführte Branches ausblenden verlässt sich auf gits eigene Antwort auf „bereits im aktuellen Branch enthalten“, ein Branch-Wechsel ändert also das Ergebnis — und der Modus behält jeden Commit, auf den noch ein Tag oder eine unbekannte Ref zeigt, genau das, was ein gelöschter Branch hinterlässt. Lineare Historie und Solo-Modus sind gröber: Ein Tag oder ein Stash auf einem ausgeblendeten Commit geht mit ihm.

  • Nach Pfad filtern: Rechtsklick auf eine Datei oder einen Ordner → Graph nach diesem Pfad filtern, und nur die Commits, die ihn berührt haben, bleiben hell.

Graph heruntergefiltert auf einen einzigen Pfad

  • Spalten: Branch-, Nachrichten-, Autor-, Datums-, SHA-, Signatur- und Deployment-Spalten anzeigen, ausblenden, in der Größe ändern und umsortieren.
  • Stil: Einstellungen → Themes → Graph — Spurenpalette (8 eingebaute, eigene oder KI-generierte), Eckenstil, Zeilendichte und Linienstärke, mit einer Live-Vorschau als Mini-Graph.

Graph-Stileinstellungen mit Live-Vorschau

Wo Stashes sitzen

Ein Stash wird als eigene Zeile gezeichnet, mit einer gestrichelten Spur am Commit hängend, von dem er genommen wurde, damit er den Stamm nicht verschiebt. Er landet in der Zeile direkt über diesem Eltern-Commit, nicht im Slot, den sein eigener Zeitstempel verdienen würde.

Seine Markierung ist eine Archivbox in einem gepunkteten Rahmen — dasselbe Archivsymbol, das die Stash-Liste, die Befehlspalette und der Detailkopf nutzen, damit der Graph einen Stash so benennt wie der Rest der App. Der gepunktete Rahmen trennt ihn vom Commit: eine Zeile über dem Elternteil muss die Form tragen «das gehört nicht zum Branch».

Ein Stash ist fast immer neuer als der Commit, auf dem er sitzt. Nach Datum sortiert würde er zwischen fremden Commits nach oben treiben und die Leine über den halben Graphen spannen. Der Eltern-Commit ist die einzige Zeile, zu der ein Stash wirklich gehört, also bleibt er daneben.

Die Grenze: ein Stash, dessen Eltern-Commit nicht im geladenen Fenster liegt — weggefiltert oder hinter dem Ende des Logs — hat nichts zum Ankern und fällt auf Datumsreihenfolge zurück, bis der Elternteil lädt. Lineare Historie und Solo-Modus lassen einen Stash fallen, dessen Elternteil sie fallen lassen, wie oben beschrieben.

Commit-Details

Wählst du einen Commit aus, siehst du seine geänderten Dateien (als Baum oder flach), Autor, SHA, Co-Autoren und seine Signatur. Die Kopfzeile über der Dateiliste teilt die Zahl nach Art, in denselben Farben wie die Glyphen in den Zeilen. Hover zeigt die schlichte Gesamtzahl. #123-Referenzen und @mentions werden automatisch mit deinem Host verlinkt.

Die Dateiliste lässt sich mit den üblichen Gesten mehrfach auswählen (⌘/Strg-Klick, ⇧-Klick, ⇧+↑/↓). Rechtsklick auf die Auswahl → {n} Dateien in den Arbeitsbaum zurückholen übernimmt diese Dateien genau so, wie dieser Commit sie hatte: nach einer einzigen Bestätigung werden die Arbeitskopien überschrieben — HEAD und Index bleiben unangetastet.

Durch die Commit-Details laufen

Siehe auch: Blame & Dateiverlauf · Suche · Zeitmaschine

Diese Übersetzung auf GitHub verbessern