Используйте перехватчик для принудительного использования определенного формата сообщения git commit
-
25-10-2019 - |
Вопрос
Я хочу использовать перехватчик git, чтобы заставить сообщения о фиксации соответствовать определенному формату (они должны заканчиваться #number).Я попробовал установить этот крючок, также упоминается здесь, но я продолжаю получать сообщение:
$ git commit -am "Test"
.git/hooks/commit-msg: line 1: sage_file: command not found
.git/hooks/commit-msg: line 2: syntax error near unexpected token `('
.git/hooks/commit-msg: line 2: `message = File.read(message_file)'
Я использую сценарии точно так, как они представлены в примерах, и оба выдают одну и ту же ошибку.Я пробовал, например:
#!/usr/bin/env ruby
message_file = ARGV[0]
message = File.read(message_file)
#starts with # then number, space, and at least 5 words no more than 200
$regex = /(^#[0-9]+ \W*(\w+(\W+|$)){5,200})/
if !$regex.match(message)
puts "Your message is not formatted correctly (example: #XXX at least 5 words)"
exit 1
end
Что может быть не так?
Решение
Возможно, что (а) вы делаете это в Windows и (б) вы случайно ввели в свой скрипт окончания строк Windows CRLF.Сценариям оболочки это не нравится, и они могут вызвать проблемы, которые вы наблюдаете.
Чтобы настроить Vim для записи окончаний строк LF в стиле Unix, используйте
:set ff=unix
:w
Не связан с StackOverflow