Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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/5/url/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 - Fatal编程技术网

Git 提交钩子上没有这样的文件或目录错误

Git 提交钩子上没有这样的文件或目录错误,git,githooks,Git,Githooks,这是我的pre-commithook #!/bin/sh echo "pre-commit started" filename="$1" lineno=0 error() { echo "$1" exit 1 } while read -r line do [[ "$line" =~ ^#.* ]] && continue let lineno+=1 length=${#line} if [[ $lineno -eq 1

这是我的
pre-commit
hook

#!/bin/sh

echo "pre-commit started"

filename="$1"
lineno=0

error() {
    echo "$1"
    exit 1
}

while read -r line
do
    [[ "$line" =~ ^#.* ]] && continue

    let lineno+=1
    length=${#line}

    if [[ $lineno -eq 1 ]]; then
        [[ $length -gt 50 ]] && error "Limit the subject line to 50 characters"
        [[ ! "$line" =~ ^[A-Z].*$ ]] && error "Capitalise the subject line"
        [[ "$line" == *. ]] && error "Do not end the subject line with a period"
    fi

    [[ $lineno -eq 2 ]] && [[ -n $line ]] && error "Separate subject from body with a blank line"
    [[ $lineno -gt 1 ]] && [[ $length -gt 72 ]] && error "Wrap the body at 72 characters"
done < "$filename"
exit 0
第28行的内容是

done < "$filename"
done<“$filename”

Git的
pre-commit
hook不接受任何参数,但您的shell脚本需要一个参数。当试图读取空文件名时,会出现所看到的错误


由于看起来您正在尝试检查提交消息的合理性(这是一个值得称赞的目标),因此您可能希望使用
commit msg
钩子。如果您想这样做,它可以拒绝您的邮件并对其进行编辑。通过运行
mangithooks

Git的
pre-commit
hook不接受任何参数,但是shell脚本需要一个参数,您可以看到更多关于哪些钩子做什么的信息。当试图读取空文件名时,会出现所看到的错误


由于看起来您正在尝试检查提交消息的合理性(这是一个值得称赞的目标),因此您可能希望使用
commit msg
钩子。如果您想这样做,它可以拒绝您的邮件并对其进行编辑。通过运行
mangithooks

,您可以看到更多关于哪些钩子做什么的信息,我遇到了相同的错误。然后我意识到我在项目文件夹的名称中使用了一个非英语字符:/

我遇到了同样的错误。然后我意识到我在项目文件夹的名称中使用了一个非英语字符:/

它工作了,但我仍然收到
第28行::没有这样的文件或目录
消息您是否删除了旧的
预提交
钩子?只要旧的钩子存在,就会出现错误。我可以建议使用更结构化的方式来管理钩子吗?看看它是否工作,但我仍然收到
第28行::没有这样的文件或目录
消息您是否删除了旧的
预提交
钩子?只要旧的钩子存在,就会出现错误。我可以建议使用更结构化的方式来管理钩子吗?看看
done < "$filename"