Emacs Got Git. Egg is an emacs interface to git. Please see the official repo at byplayer/egg.
Emacs Lisp
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
doc more build rules in Makefile for manual Oct 31, 2012
.gitignore move basic git routines to egg-git.el Oct 28, 2012
CHANGELOG.markdown update changelog Sep 22, 2012
Makefile more build rules in Makefile for manual Oct 31, 2012
README.markdown update README Oct 10, 2012
egg-const.el more reorg into multi-files Oct 28, 2012
egg-custom.el visual staging Oct 29, 2012
egg-git.el fix stash apply bug when there's conflicts in index Oct 31, 2012
egg-grep.el removing more cl's stuffs Oct 29, 2012
egg-key.el more documentation Oct 31, 2012
egg.el preserve position after staging/unstaging Nov 1, 2012


Egg (Emacs Got Git).


Egg is an Emacs interface to git. It's a suite composed of a minor-mode and various special-buffers presenting different UIs to help the user performing many git operations.

  • egg-minor-mode: providing git-specific vc-look-alike interface including similar key-bindings, a minor-mode menu and history annotations (blame).
  • egg's status-buffer:
    • index manipulation/commit preparation
    • interactive rebase stepping
    • merge conflict resolution
    • stashing work-in-progress
    • adding ignore pattern
    • staging new files
    • ediff or ediff3 launching. (e.g. 3-way ediff of work-dir/INDEX/HEAD, 3-way ediff of work-dir/theirs/ours)
  • egg's log-buffer
    • browse repo's history and reflogs
    • ref (tag, branch, etc) creation and deletion
    • push and fetch
    • start merge/rebase/interactive-rebase session
    • anchor HEAD (reset)
    • search history (pickaxe), grep commit message.
    • compare revisions
  • egg's file-log-buffer: restricted version of the log-buffer, used to browse history of a single file.
  • egg's query:commit-buffer: restricted variation of the log-buffer, used to browse history-search's results (pickaxe or message grep)
  • egg-grep: a compile-mode which can grep files in non-checkout git revisions.
  • egg's commit-log-edit buffer: used to compose the commit-message for the upcoming commit. it can do some minor index manipulation. gpg-signature can also be enabled.
  • egg's tag:msg-buffer: used to compose the message of an annotated tag. gpg-signature can also be enabled.
  • egg's diff-buffer: used to view the delta between file or repo revisions.


The design of the status-buffer Egg was borrowed/stolen from Magit. Egg, however has much more functionalities than the status buffer.


Magit is an interface to the version control system Git, implemented by Marius Voller. His code at: http://philjackson.github.com/magit/