Нет такой ошибки файла или каталога при фиксации хука
Это мое pre-commit
крюк
#!/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
Я получаю эту ошибку во время работы
› git commit -m "sfrewr"
pre-commit started
/Users/me/.git-templates/hooks/pre-commit: line 28: : No such file or directory
[master 6950a43] sfrewr
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 89
И линия 28
читает
done < "$filename"
1 ответ
Решение
Git и pre-commit
hook не принимает никаких аргументов, но ваш сценарий оболочки ожидает его. При попытке прочитать из пустого имени файла вы получаете ошибку, которую вы видели.
Так как похоже, что вы пытаетесь проверить исправность сообщения о коммите (похвальная цель), вы, вероятно, захотите использовать commit-msg
крюк вместо. Он может отклонить ваше сообщение и отредактировать его, если вы захотите это сделать. Вы можете увидеть немного больше о том, какие хуки делают, запустив man githooks
,
Я столкнулся с той же ошибкой. Затем я понял, что использовал не английский символ в названии папки проекта.: /