Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 将提交消息的第一个字母大写_Git_Githooks_Pre Commit Hook - Fatal编程技术网

Git 将提交消息的第一个字母大写

Git 将提交消息的第一个字母大写,git,githooks,pre-commit-hook,Git,Githooks,Pre Commit Hook,我不是perl用户,因此我不确定如何编写git commit msg钩子脚本,以便在每次提交时大写消息的第一个字母,以便 initial commit 变成 Initial commit 首先,a通常仅用于验证提交消息,而不是更改它。 您仍然可以尝试更改作为参数传递给该钩子的临时文件的内容 其次,该钩子可以是一个简单的bash-sed命令: #!/bin/bash sed -ie "1 s/\b\(.\)/\u\1/" $1 (请参见“”)我访问了git-scm.com链接,它说这个钩子通

我不是perl用户,因此我不确定如何编写git commit msg钩子脚本,以便在每次提交时大写消息的第一个字母,以便

initial commit
变成

Initial commit
首先,a通常仅用于验证提交消息,而不是更改它。
您仍然可以尝试更改作为参数传递给该钩子的临时文件的内容

其次,该钩子可以是一个简单的bash-sed命令:

#!/bin/bash
sed -ie "1 s/\b\(.\)/\u\1/" $1

(请参见“”)

我访问了git-scm.com链接,它说
这个钩子通常对正常提交不有用;相反,它适用于自动生成默认消息的提交,例如模板化提交消息、合并提交、压缩提交和修改提交。
对于普通用户输入的提交消息,我如何使用此功能?@nick-s它还说,就在您提到的段落之后“您可以将其与提交模板结合使用,以编程方式插入信息。“这正是我的答案。@nick-s我明白你的意思:默认消息不是用户编写的消息。但是我认为commit-msg钩子不允许更改消息的内容,只允许对其进行验证。您可以使用commit-msg钩子尝试我提到的相同sed命令。我已经相应地编辑了答案。因此,如果我要使用
-m
添加自定义消息,那么git hook?@nick-s无法以编程方式更改/操纵它,如果commit msg在您的sed命令(或者仅用于测试的更简单的命令:echo test>$1)之后没有更改内容,然后没有。你测试过用这个钩子做的简单内容修改吗?