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.
Release post in my blog.
This package will be in melpa shortly. For now, get it from https://github.com/kidd/git-msg-prefix.el
(use-package git-msg-prefix
:ensure t
:config
(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.
(local-set-key
(kbd "C-c i")
'git-msg-prefix)
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 <[email protected]>