Verwenden Sie Hook, um das spezifische Format der Git -Commit -Nachricht zu erzwingen
-
25-10-2019 - |
Frage
Ich möchte einen Git -Hook verwenden, um die Bekämpfung von Nachrichten zu zwingen, ein bestimmtes Format einzuhalten (sie sollten mit #Number enden). Ich habe versucht zu installieren dieser Haken, auch verwiesen hier, aber ich bekomme immer wieder die Nachricht:
$ 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)'
Ich verwende die Skripte genau so, wie sie in den Beispielen erscheinen, und beide geben den gleichen Fehler an. Ich habe zum Beispiel versucht:
#!/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
Was könnte falsch sein?
Lösung
Es ist möglich, dass (a) Sie dies unter Windows tun und (b) Sie versehentlich Windows CRLF -Zeilenende in Ihr Skript eingeführt haben. Shell -Skripte mögen diese nicht und können das Problem verursachen, das Sie beobachten.
So setzen
:set ff=unix
:w
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow