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