내 저장소를 깨끗하고 깔끔하게 유지하기 위해 git commit 메시지 정책을 시행하려고합니다. 나는 서버 측과 클라이언트 측 훅에 대한 공식 문서를 본 다음 husky에 부딪혔다.husky를 사용하여 git commit 메시지 형식을 확인하려면 어떻게해야합니까?
지금까지 나는 처음에는 작업 할 수 있었지만 허스키를 설정할 수는 없었습니다. 아직 배울 점이 많습니다. 주요 개념은 클라이언트 측 훅을 수동으로 설정할 필요없이 새로운 워크 스테이션에서 작업 할 수 있다는 것입니다.
내 커밋 메시지를 확인하거나 예제를 만들기 위해 허스키를 설정하는 방법을 설명 할 수 있습니까?
이 project-root/githooks
폴더에 내 커밋 MSG 후크입니다 :
#!/usr/bin/env ruby
message_file = ARGV[0]
message = File.read(message_file)
$regex = /([resolved|fixed]) #([0-9])* ([A-Z])\w+/
if !$regex.match(message)
puts "[POLICY] Your message is not formatted correctly!"
puts "Message format must be like:"
puts "resolved #123 Case title (for features)"
puts "fixed #123 Case title (for bugs)"
puts "First letter of 'Case title' must be capitalized!"
exit 1
end
나는 package.json에 스크립트를 추가하는 시도했다 :
"scripts": {
... : ...,
"commitmsg": "sh hooks/commit-msg",
... : ...
}
는 후크가 작동하지 않습니다. 모든 메시지가 전달됩니다. .git/hooks에 입력하면 정상적으로 작동합니다.
가 여기에 package.json와 테스트 프로젝트의 스크린 샷이다, 커밋-MSG 후크와 오류가 그것을 밖으로 준다.
.git/hooks 폴더에있는 동일한 후크가 올바르게 작동합니다.
이npm install husky --save-dev
그런 다음에 (사전 저지 및 사전 푸시 여기) 후크를 추가 할 수 있습니다
우선, 도와 주셔서 감사합니다. 편집에서 언급했듯이 package.json 파일을 구성하려고했지만 전혀 작동하지 않습니다. 나는 validate-commit-msg도 시도해 보았고, 이것도 작동하지 않는다. 지금까지 스크립트 ("postinstall": "sh hooks/setup_hooks.sh")를 실행하여 .git/후크 폴더. – remmargorp
@remmargorp 어떤 OS에서 작업하고 있습니까? npm의 버전은 무엇입니까? – VonC
우분투 16.04이고 npm은 4.0.5 버전입니다 – remmargorp