如何更改默认git提交消息

Adr*_*neo 2 git commit

我在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)

问题是否有机会在顶部显示此默认消息?或者更好地永久删除此消息?

tor*_*rek 6

你似乎混合了commit.template选项(这为提供一个默认值--template选项git commit与)prepare-commit-message挂钩.

通常git commit使用以下操作序列:

  1. 运行预提交挂钩(如果存在且可运行).如果它退出非零,则中止提交.
  2. 将任何指定或配置的模板(见下文)复制到临时文件.如果没有模板或模板路径不可读,则从空的临时文件开始.
  3. 添加行# Please enter the commit message ...和输出git status.
  4. prepare-commit-message在临时文件上运行挂钩(如果存在且可运行).
  5. 在临时文件上打开编辑器.(您编辑从设置$GIT_EDITORcore.editor配置,$VISUAL,$EDITOR,或者一个内置的默认,取其第一个一组).
  6. 退出编辑器后,进行提交或停止提交,具体取决于您是否提供了提交消息.

如果使用-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文档.