如何从githook获取参数



从githook的文档中说:

钩子可以通过环境、命令行参数和stdin获取它们的参数。有关详细信息,请参阅下面每个挂钩的文档。

但是上面提到的论点是什么?

如果我用这个命令提交:

git commit -m "my commit" --trailer "Helped-by: Nganu <committer@example.com>"

如何在预提交或准备提交消息挂钩中获得trailer值?

我没有看到任何关于在pre-commitprepare-commit-msg挂钩中获取参数的文档。我尝试使用类似$0的bash参数,但失败了。

对于prepare-commit-msg

它需要一到三个参数。第一个是文件名包含提交日志消息。第二个是commit消息,可以是:message(如果给定-m或-F选项(;模板(如果给定了-t选项或配置选项commit.template已设置(;merge(如果提交是一个merge或存在.git/MERGE_MSG文件(;挤压(如果是.git/squash_MSG文件存在(;或commit,后跟commit对象名(如果是-c、-c或--给出了修改选项(。

我们可以从第一个参数中获取包含提交消息日志的文件,然后对其进行解析以获取尾部。

#!/bin/bash
msg_file=$1
echo msg_file:${msg_file}
# parse msg_file to get trailers
trailer=$(git interpret-trailers --parse ${msg_file} | grep '^Helped-by:')
echo Trailer: ${trailer}

相关内容

  • 没有找到相关文章

最新更新