Insert a piece of earlier vcs commits in your current commit message
Emacs Lisp
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



In many organizations, git commits have to have a structure, like starting with one word from a list (Add, Fix, Clean, Remove…).

In other projects, you should start the commit messages with the issue number, or a specific tag referring to the feature you’re developing (Billing-123).

git-msg-prefix is intended to solve this repetitive task, by providing a prompt with some customized list of options. The default command is to present a searchable list of the previous commits (more recent first), and lets you select the one you want. This list of candidates is configurable via `git-msg-prefix-log-command`.

Once selected, the relevant part of the commit line will be extracted from the choosen candidate (via the regex in git-msg-prefix-regex, and the matched text will be inserted in the current buffer.

A gif is worth a 10^3 words: ./git-msg-prefix.gif

Release post in my blog.



This package will be in melpa shortly. For now, get it from

(use-package git-msg-prefix
  :ensure t
  (setq git-msg-prefix-log-flags " --since='1 week ago' "
        git-msg-prefix-input-method 'helm-comp-read)
  (add-hook 'git-commit-mode-hook 'git-msg-prefix))


Add a hook to activate run the function when starting to write your commit

(add-hook 'git-commit-mode-hook 'git-msg-prefix)
(setq git-msg-prefix-input-method 'helm-comp-read)

Otherwise, add a keybinding to that function or run it manually from the minibuffer.

 (kbd "C-c i")


There are 3 variables to configure:

  • git-msg-prefix-log-command: defaults to “git log –pretty=format:"%s"”
  • git-msg-prefix-log-flags: defaults to “”
  • git-msg-prefix-regex: defaults to “^\([^ ]*\) ”
    • git-msg-prefix-input-method: defaults to ido-completing-read. Change it to your favourite input method. (‘completing-read ‘ido-completing-read ‘git-msg-prefix-helm-read ‘ivy-read)


Raimon Grau <>