I've added some changes on commit message in prepare-commit-msg file and then I exec this command
git config --global commit.template .git/hooks/prepare-commit-msg
After that when I do git commit I receive something like this
40 lines of my changes and then
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Explicit paths specified without -i nor -o; assuming --only paths...
# On branch master
# Changes to be committed:
#
# modified: test
#
Question is there any chance to show this default message on the top? Or better permanently remove this message?
You seem to be mixing up the commit.template
option (which provides a default value for the --template
option to git commit
) with the prepare-commit-message
hook.
Normally git commit
uses the following sequence of operations:
# Please enter the commit message ...
and the output of git status
.prepare-commit-message
hook, if it exists and is runnable, on the temporary file.$GIT_EDITOR
, the core.editor
configuration, $VISUAL
, $EDITOR
, or a built-in default, whichever is the first one set.)If you use the -f
or -m
options, steps 2, 3, and 5 are normally skipped (though you can force git to open your editor by adding --edit
). Presumably you have not used those options.
What the --template
option does—and hence what commit.template
does—is to provides the path name of a file that git commit
will copy in step 2. This does not affect lines added in step 3. While the path .git/hooks/prepare-commit-message
is (probably) a file git can read, it's not a very sensible name for your template, since if that same path is made executable, the file will become runnable and step 4 will probably behave badly.
You can tell git commit
not to do step 3 by adding --no-status
. (Also, as a somewhat odd side effect, --no-edit
, which explicitly suppresses step 5, also suppresses step 3.)
Or, you can make use of step 4 to eliminate some or all of the git status
output and standard # Please enter...
message. The prepare-commit-message
hook can make arbitrary changes to the template file.
Note that --cleanup=<mode>
affects what winds up in the final commit message, and also the processing of step 6. For details see the git commit
documentation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With