Use el gancho para forzar el formato específico del mensaje de confirmación de git
-
25-10-2019 - |
Pregunta
Quiero usar un git git para forzar los mensajes de compromiso para cumplir con un formato específico (deben terminar con #number). He intentado instalar este gancho, también referenciado aquí, pero sigo recibiendo el mensaje:
$ 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)'
Estoy usando los scripts exactamente como aparecen en los ejemplos, y ambos dan el mismo error. He intentado por ejemplo:
#!/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
¿Qué podría estar mal?
Solución
Es posible que (a) esté haciendo esto en Windows, y (b) ha introducido accidentalmente las terminaciones de la línea de Windows CRLF en su script. A los guiones de shell no les gustan y pueden causar el tipo de problema que observa.
Para configurar VIM para escribir finales de línea LF de estilo UNIX, use
:set ff=unix
:w
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow