https://github.com/itsjeyd/git-wip-timemachine.git
    git clone 'git://github.com/itsjeyd/git-wip-timemachine.git'
      
    
  
  git-wip-timemachine is a modified version of
git-timemachine by Peter
Stiernström that allows you to browse
git-wip versions of files from
Emacs.
git-wip-timemachine is on MELPA. To
start using it, follow these steps:
If you haven't already, set up
   git-wip:
Clone the git-wip package to your $HOME directory:
     $ cd
     $ git clone https://github.com/itsjeyd/git-wip
If you decide to clone to a different directory and that
 directory is not part of your exec-path in Emacs, you'll need
 to add the following code to your init-file (to make sure Emacs
 can find the git-wip script):
    (add-to-list 'exec-path "/path/to/git-wip")
Add the following code to your init-file:
    (load "/path/to/git-wip/emacs/git-wip.el")
From now on, every time you save a file that is part of a git
 repository, Emacs will automatically create a WIP commit by
 calling out to git-wip for you.
Install git-wip-timemachine via:
M-x package-install RET git-wip-timemachine RET
Issue M-x git-wip-timemachine to browse through WIP
versions of a file.
Use the following keys to navigate WIP versions of the file:
If you want, you can of course bind git-wip-timemachine to a key
sequence of your choice.
Finally, there's also git-wip-timemachine-toggle which does exactly
what its name suggests: If the timemachine is on, calling this command
will turn it off (and vice versa).
lispy-mode interferes with the
default bindings of git-wip-timemachine. If it is on when you start
the timemachine, it will be turned off automatically (and become
active again when you exit the timemachine).
If you use magit, you might be
interested in having your WIP commits listed in the *magit-log*
buffer. Follow these steps to do this interactively:
Hit l to bring up the menu for logging.
Enter -al to enable the --all switch.
Hit l (or L, if you want to see stats as well).
If you want to enable the --all switch by default, you can add the
following code to your init-file:
(defun magit-log-all ()
  (interactive)
  (magit-key-mode-popup-logging)
  (magit-key-mode-toggle-option 'logging "--all"))
(define-key magit-mode-map (kbd "l") 'magit-log-all)
Note that while git-wip-timemachine only considers WIP commits that
introduce changes to the file it was called from, magit will show
all WIP commits by default (irrespective of the file(s) they touch).