gpt4 book ai didi

git - 如何更改默认的 git 提交消息

转载 作者:太空狗 更新时间:2023-10-29 14:29:40 26 4
gpt4 key购买 nike

我在 prepare-commit-msg 文件中对提交消息添加了一些更改,然后执行此命令

git config --global commit.template .git/hooks/prepare-commit-msg

之后,当我执行 git commit 时,我会收到类似这样的信息

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
#

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

最佳答案

您似乎混淆了 commit.template选项(它为 --template 选项提供默认值 git commit )与 prepare-commit-message钩子(Hook)。

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

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

如果您使用 -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 hook 可以对模板文件进行任意修改。

请注意 --cleanup=<mode>影响最终提交消息中的内容,以及步骤 6 的处理。有关详细信息,请参阅 the git commit documentation .

关于git - 如何更改默认的 git 提交消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com