59

Is it possible to modify the commented part of the default git commit message? I want to add a bit more 'context' information for my users.

# Please enter the commit message for your changes.
# (Comment lines starting with '#' will not be included)
# Explicit paths specified without -i nor -o; assuming --only paths...
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   test.txt
#
0

4 Answers 4

86

There is commit.template configuration variable, which according to git-config(1) manpage:

Specify a file to use as the template for new commit messages. "~/" is expanded to the value of $HOME and "~user/" to the specified user's home directory.

You can put it in per-repository (.git/config), user's (~/.gitconfig) and system (/etc/gitconfig) configuration file(s).

Sign up to request clarification or add additional context in comments.

4 Comments

This only changes the commit text, ie what appears before the comment markers. The OP's asking about changing the commit comment markers themselves.
This is really helpful. There are a couple of lines that I had to keep typing in every commit I make. Nice! Also I found this vim tip uber useful : Position cursor on first line of commit message. Happy Days !
@me_and: commit comment markers were not configurable at the time of writing this answer. There was proposal to make them configurable, but I don't remember if it is configuration available to user, and whether this change is in released version.
Funny thing is this answer doesn't answer the original question, although the original problem is probably solved by it, but nonetheless this answer has the most upvotes! So it seems to me that this is what people are actually looking for (like myself).
49

You can use git hooks for that. Before the person who wants to commit the changes is shown the commit message, the prepare-commit-msg script is run.

You can find an example prepare-commit-msg script in .git/hooks.

To edit the default message create a new file called prepare-commit-msg in the .git/hooks folder. You can edit the commit message by using a script like this:

#!/bin/sh
echo "#Some more info...." >> $1

The $1 variable stores the file path to the commit message file.

4 Comments

I knew it was possible. I read about it somewhere and couldn't find this any more. Thanks!
Just beware that hooks don't get added to the repo. When this repo is cloned somewhere else, you'll have to set up the hook again.
commit.template configuration variable is there exactly for this purpose and that should be used instead.
I wrote a wrapper to make git hooks handling more simple. pypi.org/project/hooks4git
3

Put something like this in .gitconfig (source):

[commit]
  template = ~/myGitMessage.txt

and in that file content, set your default commit message.

Comments

2

Here is a python git-hook to clean up the default message. Hook name: prepare-commit-msg.

#!/usr/bin/env python
import sys
commit_msg_file_path = sys.argv[1]
with open(commit_msg_file_path, 'a') as file:
    file.write('')

You can simply add you text in the file.write() method.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.