3
커밋 메시지가 특정 형식 (#number로 끝나야 함)을 따르도록 강요하기 위해 git 후크를 사용하고 싶습니다. 또한 here을 참조, this hook를 설치하려고했지만, 내가 메시지가 계속 :후크를 사용하여 git commit 메시지의 특정 형식을 강제 적용하십시오.
$ 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
무엇이 잘못 될 수 있습니까?
당신이 사용하고있는 * 실제 * 스크립트의 내용을 게시 할 수 사용, 빔은 유닉스 스타일 LF 라인 엔딩을 작성하는 설정하려면? Pro Git에 게시 된 내용을 변경했는지 여부는 알 수 없습니다. –
(a) Windows에서이 작업을 수행하고 있고, (b) 실수로 스크립트에 Windows CRLF 줄 끝을 도입 한 적이 있습니까? 쉘 스크립트는 그러한 것을 좋아하지 않습니다. 또한 오류 메시지가'sage_file'을 찾을 수 없다고 말하는 것은 의심 스럽지만 여러분의 스크립트는 특별히 그것을 언급하지 않습니다. –
예, 좋은 통찰력! 그것은 Windows가 아니었지만 vim은 어떻게해서 linebreaks를 엉망으로 만들었지 만 다른 편집기를 사용하여 줄 바꿈으로써 해결됩니다. 감사! 이 질문을 답으로 쓸 수 있다면 받아 들일 수 있습니다. –