2013-02-18 5 views
8

Emacs hat einen optionalen Undo-Tree. Sie können den Cursor auf jeden Knoten setzen und auf die Eingabetaste drücken, um in der Zeit zurückzugehen, sogar entlang der Zweige.Git Baum mit auswählbaren Knoten im Terminal?

Gibt es etwas Ähnliches für git, auf das innerhalb des Terminals zugegriffen werden kann (nicht Emacs). Also könnte ich innerhalb eines Git-Projekts einen Befehl eingeben und es würde den Baum anzeigen. Ich konnte den Cursor bewegen, in der Zeit zurückgehen oder sogar zu einem anderen Zweig wechseln und dann die Return-Taste drücken, um den gesamten Status dieses Commits auszuwerten.

git undo tree

+1

Dies ist kein Duplikat, weil es nur eine Ansicht ist, aber es kann Sie irgendwo nützlich führen: http://StackOverflow.com/Questions/1838873/visualizing-branch-Topology-in-Git –

+0

Ja, diese Art gesehen Dinge, aber fragte sich, ob es eine wählbare Version – cannyboy

+6

'tig 'könnte für Sie interessant sein, die ein bisschen wie' gitk' mit einem ncurses UI ist –

Antwort

11

Wie @NevikRehnel sagte tig ist dein Freund.

tig --all zeigt Ihnen Ihr komplettes Protokoll in einer Baumform (als git log 's --graph Schalter).

tig log view http://i48.tinypic.com/f9pkef.png

Sie zwischen bewegen verpflichtet mit nach oben und unten Tasten, sehen Sie eine git show der ausgewählten begehen mit eingeben, und Sie können Verschiebung + C dafür git cherry-pick davon begehen getroffen.

tig show view http://i47.tinypic.com/i4ix6e.png

Sie können H jederzeit drücken, um Hilfe zu sehen.

tig help view http://i45.tinypic.com/25ahu0m.png

Sie Zweige Prüfung können, aber Sie können auch hinzufügen custom bindings für git checkout tun.

Ich denke, man tigrc wäre genug, um zu verstehen, wie.

+0

Ich war nicht bewusst' tig ', danke für die Freigabe. Scheint wie ein großartiges Werkzeug. N.B. diejenigen, die OSX ausführen, können es mit [homebrew] (http://mxcl.github.com/homebrew/) installieren ('brew install tig '). –

0

Für eine grafische Ansicht des Git, installieren Sie das Dienstprogramm gitk und geben Sie gitk --all ein und klicken Sie mit der rechten Maustaste, um die Kopfposition zu ändern. Verwenden Sie Soft Reset oder Hard Reset. Achtung: Bei einem Hard-Reset werden alle Änderungen nach dem Kopf gelöscht, auf den Sie zurückgesetzt haben.