フックを使用して、特定の形式のgitコミットメッセージを強制する

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

  •  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

何が間違っているのでしょうか?

役に立ちましたか?

解決

(a)Windowsでこれを行っている可能性があります。(b)誤ってWindows CRLFラインエンディングをスクリプトに導入した可能性があります。シェルスクリプトはそれらが好きではなく、あなたが観察するような問題を引き起こす可能性があります。

VIMを設定してUNIXスタイルのLFラインエンディングを書くには、使用してください

:set ff=unix
:w
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top