我在
当我尝试提交代码时,出现错误并阻止了提交。
我接下来会执行以下操作:
myrepo/.git/hooks
目录下创建了一个commit-msg钩子。#!/bin/sh
message=`cat $1`
c=`echo $message|grep -c 'fff'`
if[ $c -gt 0 ];then
echo "Error"
exit 1
fi
exit 0
当我尝试提交代码时,出现错误并阻止了提交。
$ git commit -m "reffrffffeffff fffeef"
Error
我接下来会执行以下操作:
$ cd myrepo
$ mkdir .hooks
$ mv .git/hooks/commit-msg .hooks/commit-msg
$ ln -s .hooks/commit-msg .git/hooks/commit-msg
尝试使用相同的消息再次提交。
提交成功。我猜我可能在上面的步骤中做错了什么?
有人能告诉我如何制作客户端钩子,并使每个开发人员从该钩子获取限制吗?
pre-receive
可以阻止带有错误提交信息的推送,但是commit-msg
会阻止提交。另一个选项是让每个开发人员自己安装commit-msg
钩子(我在我的回答中详细说明了)。 - David Cainvar=`cat $1`;var2=`echo $var | grep -c <regex>`
等同于var2=`grep -c <regex> $1`
。而且你可以用检查 grep 的退出状态($?
)来替换计数出现次数 - 如果找到正则表达式,grep 命令将返回 0。 - David Cain