我在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
#
Run Code Online (Sandbox Code Playgroud)
问题是否有机会在顶部显示此默认消息?或者更好地永久删除此消息?
你似乎混合了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(尽管您可以强制git通过添加来打开编辑器--edit
).大概你没有使用过这些选项.
该怎么--template
选择呢,因此什么commit.template
也,是提供了一个文件的路径名称git commit
将在步骤2中这不会影响第3步中添加的行虽然路径复制.git/hooks/prepare-commit-message
是(可能)的文件的git可以阅读,它的对于您的模板而言,这不是一个非常明智的名称,因为如果相同的路径可执行,则该文件将变为可运行,并且步骤4可能表现不佳.
您可以通过添加来告诉git commit
不要执行第3步--no-status
.(另外,作为一个有点奇怪的副作用--no-edit
,它明确地抑制了第5步,也抑制了第3步.)
或者,您可以使用步骤4来消除部分或全部git status
输出和标准# Please enter...
消息.该prepare-commit-message
钩子可以对模板文件任意修改.
请注意,--cleanup=<mode>
影响是什么最终提交邮件中卷起,和步骤6的也处理详情参见该git commit
文档.