git hooks bash - 获取提交消息

myu*_*uf3 5 git bash

我正在写一个git钩子,在主分支的提交上运行.我需要它来解析并在提交消息中查找一些文本.如何在bash脚本中引用提交消息?

此外,我想知道如何只在提交到主分支时运行钩子.所以开发人员可以解决那里的本地提交,并在他们修复了一个bug之后提交到​​主分支.

谢谢,麻烦您了.

Cas*_*bel 5

答案在一定程度上取决于您尝试对提交消息执行的操作。您可能会询问三个钩子:

  • prepare-commit-msg在准备好默认消息之后,在用户编辑它之前立即运行。第一个参数是带有提交消息的文件名。(第二个参数表示消息的来源。)

  • commit-msg在提交消息被编辑/完成之后,但在提交发生之前运行。如果您想在用户的提交消息不好的情况下使提交失败,或者要修改消息,则需要这样做,并且单个参数是带有提交消息的文件的名称。

  • post-commit在提交后运行。它没有参数,但您当然可以从git log -n 1 HEAD(可能带有--format=format:%s%n%b或类似的)获取消息。如果您只想在消息中查找某些内容并根据它进行通知,则应该使用它。

所有这些材料都取自githooks 联机帮助页

至于仅在主分支上运行它,您需要的只是:

if [ "$(git symbolic-ref HEAD)" == "refs/head/master" ]; then
    # do your stuff
fi
Run Code Online (Sandbox Code Playgroud)


小智 5

使用以下命令:

cat $1

将在commit-msg中打印您的提交消息