2017-01-22 14 views
1

내 저장소를 깨끗하고 깔끔하게 유지하기 위해 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 and commit-msg hook in a test project

가 여기에 package.json와 테스트 프로젝트의 스크린 샷이다, 커밋-MSG 후크와 오류가 그것을 밖으로 준다.

.git/hooks 폴더에있는 동일한 후크가 올바르게 작동합니다.

npm install husky --save-dev 

그런 다음에 (사전 저지 및 사전 푸시 여기) 후크를 추가 할 수 있습니다

답변

1

issue 81

먼저, 힘내의 repo에 다음

npm config get ignore-scripts # should be false 

을 확인하십시오 npm (package.json)이면 그 훅 정의 인 아이디어는 package.json 파일에 있습니다. (자식 리포 지 소스의 일부)

,451,515,

https://camo.githubusercontent.com/89b1f62d0f2f8b73cad2c70faec7b45d9957c41f/68747470733a2f2f692e696d6775722e636f6d2f794844734d32522e706e67

당신은 또한 당신은 다음 커밋 메시지를 검증하기 위해 validate-commit-msg를 사용하여 기존의 일반 bash는 후크 (issue 92)

{ 
    "scripts": { 
    "precommit": "sh scripts/my-specific-hook.sh" 
    } 
} 

을 선언 할 수 있습니다.

package.json의 npm 스크립트에 추가하십시오.

+0

우선, 도와 주셔서 감사합니다. 편집에서 언급했듯이 package.json 파일을 구성하려고했지만 전혀 작동하지 않습니다. 나는 validate-commit-msg도 시도해 보았고, 이것도 작동하지 않는다. 지금까지 스크립트 ("postinstall": "sh hooks/setup_hooks.sh")를 실행하여 .git/후크 폴더. – remmargorp

+0

@remmargorp 어떤 OS에서 작업하고 있습니까? npm의 버전은 무엇입니까? – VonC

+0

우분투 16.04이고 npm은 4.0.5 버전입니다 – remmargorp