Verwenden Sie Hook, um das spezifische Format der Git -Commit -Nachricht zu erzwingen

StackOverflow https://stackoverflow.com/questions/8305610

  •  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?

War es hilfreich?

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
scroll top