Installation alternatives:
- Download git-timemachine.el and drop it somewhere in your
load-path
. - If you use
el-get
, simply addgit-timemachine
to your packages list. - If you have melpa configured it's available through
package-install
.
Visit a git-controlled file and issue M-x git-timemachine
(or bind
it to a keybinding of your choice). If you just need to toggle the
time machine you can use M-x git-timemachine-toggle
.
Use the following keys to navigate historic version of the file
p
Visit previous historic versionn
Visit next historic versionw
Copy the abbreviated hash of the current historic versionW
Copy the full hash of the current historic versiong
Goto nth revisiont
Goto revision by selected commit messageq
Exit the time machine.b
Runmagit-blame
on the currently visited revision (if magit available).c
Show current commit using magit (if magit available).
Set git-timemachine-abbreviation-length
(default 12) to your
preferred length for abbreviated commit hashes.
Set git-timemachine-show-minibuffer-details
(default t) to control
whether details of the commit are shown in the minibuffer.
Also M-x customize [git-timemachine]
.
Just use your normal write-file
and supply the file name of your
choice. Be aware that you might be throwing away local uncommitted
changes to the file in question. If you don't want to use you muscle
memory to write the file you can map write-file
to something short
and sweet in git-timemachine-mode-map
.
If you're having trouble using git-timemachine with native compilation turned on, possible together with a treesit enhanched mode such as python-ts-mode and get an error, try disabling native compilation for git-timemachine as it might help.