我在prepare-commit-msg文件中添加了对提交消息的一些更改,然后我执行了这个命令
git config --global commit.template .git / hooks / prepare-commit-msg
之后,当我执行git commit时,我会收到类似这样的内容
我改变了40行然后
# 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
#
问题是否有机会在顶部显示此默认消息?或者更好地永久删除此消息?
答案 0 :(得分:6)
您似乎将commit.template
选项(--template
选项的默认值与git commit
)混合使用prepare-commit-message
挂钩。
通常git commit
使用以下操作序列:
# Please enter the commit message ...
和git status
的输出。prepare-commit-message
挂钩(如果存在且可运行)。$GIT_EDITOR
,core.editor
配置,$VISUAL
,$EDITOR
或内置默认值,以第一个设置为准。)如果您使用-f
或-m
选项,则通常会跳过第2步,第3步和第5步(尽管您可以通过添加--edit
强制git打开您的编辑器)。大概你没有使用过这些选项。
--template
选项的作用 - 以及commit.template
的作用是提供git commit
将在步骤2中复制的文件的路径名。这不会影响添加的行在步骤3中。当路径.git/hooks/prepare-commit-message
(可能)文件git可以读取时,它对于您的模板来说不是一个非常合理的名称,因为如果相同的路径可执行,则该文件将成为可运行的,第4步可能会表现得很糟糕。
您可以通过添加git commit
告诉--no-status
而非执行第3步。 (另外,作为一个有点奇怪的副作用,--no-edit
明确地抑制了第5步,也抑制了第3步。)
或者,您可以使用第4步消除部分或全部git status
输出和标准# Please enter...
消息。 prepare-commit-message
挂钩可以对模板文件进行任意更改。
请注意,--cleanup=<mode>
会影响最终提交消息中的内容,以及第6步的处理。有关详细信息,请参阅the git commit
documentation。