git hooks

来源:互联网 发布:淘宝能追评几次 编辑:程序博客网 时间:2024/05/01 11:45

很多朋友并不知道git hooks这个功能吧。


hooks 翻译过来就是钩子的意思, 我的翻译就是trigger ,引发的意思。


简单的说就是做一件事情,引发了另一件事情。


那么git 有哪些hooks 了, 


有pre-commit 就是在你commit之前,引发了某件事情。


有post-commit 就是在你commit 之后,引发某件事情。


有post-update, 就是在你git push 到服务器后,引发某件事情。


还有很多, 自己上网查查


下面就让我介绍几个最简单的应用吧。


1. 每次commit之后,就自动运行jenkins去检查Unit test

 

.git/hooks/post-commit に


wget -O /dev/null "http://hostname:8080/job/jobname/build?delay=3sec"


chmod +x post-commit


2. commit 之前检查文件中是否有debugger 字符


.git/hooks/pre-commit に


#!/usr/bin/env ruby


# check for debugger
result = `grep -rlsn "binding.pry" --exclude-dir=".git" .`
if result != ""
  puts "[Error] you put binding.pry in your files\n"
  puts result
  exit(1)
end
 

chmod +x pre-commit


3. commit中检查你的commit 是否符合格式


#!/usr/bin/env ruby


# check for messager format
# the best way looks like:
# GI-123 GI-234 GI-345 #resolve #time 2d 5h #comment Task completed ahead of schedule
message_file = ARGV[0]
message = File.read(message_file)


$regex = /^GI-(\d+)/


if !$regex.match(message)
  puts "[POLICY] Your message is not formatted correctly"
  exit 1
end

chmod +x commit-msg


原创粉丝点击