book progit은 서버 측과 클라이언트 측의 훌륭한 예이다. 당신은 것 커밋 메시지에 해당 링크에서 가져온 적응 a few examples here. 하나의 예를 찾을 수 있습니다
#!/usr/bin/env ruby
$refname = ARGV[0]
$oldrev = ARGV[1]
$newrev = ARGV[2]
$user = ENV['USER']
puts "Enforcing Policies... \n(#{$refname}) (#{$oldrev[0,6]}) (#{$newrev[0,6]})"
$regex = /\[BUG: (\d+)\]/
# enforced custom commit message format
def check_message_format
missed_revs = `git rev-list #{$oldrev}..#{$newrev}`.split("\n")
missed_revs.each do |rev|
message = `git cat-file commit #{rev} | sed '1,/^$/d'`
if !$regex.match(message)
puts "[POLICY] Your message is not formatted correctly"
exit 1
end
end
end
check_message_format
이것은 어떤 누구의 메시지 문자열로 포맷되지 않은 커밋 거부해야 "BUG :"뒤에 숫자 (아마도 문제 추적 시스템에서).
안녕하세요 크리스토퍼, 버전 제어에서 클라이언트 측 연결 고리를 만들 수 있습니다 .i는 모든 로컬 저장소에 커밋 - msg 훅 파일을 만들어야한다는 것을 의미합니다. 훅이 버전 control.i에 없으면 ln -s를 사용하려고했습니다. ./../.hooks/commit-msg commit-msg.but failed! – Venus
흠. 나는 몇 분 전에 심볼릭 링크로 전혀 문제가 없었습니다. 올바른 이름/구문을 사용하고 있습니까? 후크를 버전 제어하는 방법에 관해서는 완전히 다른 저장소 (아마도 "후크"또는 "운영 체제"또는 다른 것으로 불리기도 함)를 사용하고 그 중 원하는 것을 연결하는 것이 좋습니다. 그래도 개인적인 취향이야. 나머지 코드를 "메인 저장소"에 넣을 수도 있습니다. – Christopher