Table of Contents


git-auto-commit-mode is a minor mode for GNU Emacs1 that, when enabled, tries to commit changes to a file after every save. It can also try to push to the default upstream.


  • Automatically commit changes to a file after each save.
    • The commit message will contain the file name relative to the repository root.
  • Optionally, automatically push commits to the default upstream.


These should be mostly obvious.


To be able to use it you need to put it somewhere in your load-path and load it, for example:

(add-to-list 'load-path "~/path/to/git-auto-commit-mode.el")
(auto load 'git-auto-commit-mode "git-auto-commit-mode")

Automatically commit

There are a few ways this could be used:

As file-local variable

This is the way I use it and I wanted to use it. Any file that you would like to have automatically committed upon saving gets this prop-line:

;; -*- eval: (git-auto-commit-mode 1) -*-

Or, if you're in anything older than emacs 24:

;; -*- mode: git-auto-commit -*-

As a directory-local variable

Put the following in a .dir-locals.el file in any directory where you want to enable git-auto-commit-mode for all files:

((nil . ((git-auto-commit-mode . t))))

As a hook

I doubt this will ever really be useful, but it is possible:

(add-hook 'some-hook 'git-auto-commit-mode)

Automatically push

If you wish to push your changes each time the file is saved you should set gac-automatically-push-p to t. This is a buffer local variable, so you will have to put it in your dir-local or file-local variables. Alternatively, if you're sure you can also set the default value to t, like so:

(setq-default gac-automatically-push-p t)

Date: 2012-07-01 13:51:47 CEST

Validate XHTML 1.0