#+TITLE: git-auto-commit-mode #+STYLE: #+LINK_UP: ../index.html #+LINK_HOME: http://ryuslash.org #+LINK: src https://github.com/ryuslash/git-auto-commit-mode #+LINK: tar_gz https://github.com/ryuslash/git-auto-commit-mode/tarball/master #+LINK: zip https://github.com/ryuslash/git-auto-commit-mode/zipball/master #+STARTUP: showall #+begin_html #+end_html #+INCLUDE: "dlmenu.inc" * About ~git-auto-commit-mode~ is a minor mode for GNU Emacs[fn::http://gnu.org/software/emacs/] that, when enabled, tries to commit changes to a file after every save. It can also try to push to the default upstream. ** Features - 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. ** Requirements These should be mostly obvious. - [[http://gnu.org/software/emacs][GNU Emacs]] - [[http://git-scm.com][git]] * Usage To be able to use it you need to put it somewhere in your ~load-path~ and load it, for example: #+begin_src emacs-lisp (add-to-list 'load-path "~/path/to/git-auto-commit-mode.el") (auto load 'git-auto-commit-mode "git-auto-commit-mode") #+end_src ** 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: #+BEGIN_SRC emacs-lisp ;; -*- eval: (git-auto-commit-mode 1) -*- #+END_SRC Or, if you're in anything older than emacs 24: #+BEGIN_SRC emacs-lisp ;; -*- mode: git-auto-commit -*- #+END_SRC *** 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: #+BEGIN_SRC emacs-lisp ((nil . ((git-auto-commit-mode . t)))) #+END_SRC *** As a hook I doubt this will ever really be useful, but it is possible: #+BEGIN_SRC emacs-lisp (add-hook 'some-hook 'git-auto-commit-mode) #+END_SRC ** 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: #+begin_src emacs-lisp (setq-default gac-automatically-push-p t) #+end_src