三分钟教你学Git(十七) - 钩子
来源:互联网 发布:健康体检软件系统 编辑:程序博客网 时间:2024/05/02 05:03
Git可以定制一些钩子,这些钩子可以在特定的情况下被执行,分为Client端的钩子和Server端的钩子。Client端钩子被operation触发,比如commit,merge等,Server端钩子被网络动作触发,比如pushed commits。
那么钩子是放在哪的呢?
在.git/hooks/文件夹下。当你init一个仓库的时候,下边会有一些钩子的例子,以.sample结尾。
那么钩子什么时候被执行,Git预定义了触发时机:
ClientSide hooks:
1 pre-commit,当执行commit动作时先执行此hook,可以用此hook做一些检查,比如代码风格检查,或者先跑测试。
2 prepare-commit-msg, 当commit时需要输入message前会触发此hook,可以用此hook来定制自己的default message信息。
3 commit-msg,当用户输入commit的message后被触发,可以用此hook校验message的信息,比如是否符合规定,有没有cr等。
4 post-commit, 当commit完成后被触发,可以用此hook发送notification等。
5 pre-rebase, rebase之前会被触发,可以用此hook来拒绝所有的已经push的commits进行rebase操作。
6 post-merge, 当merge成功后,会触发此hook。
7 pre-push, 当push时,remote refs被更新,但是在所有的objects传输前被触发。
8 pre-auto-gc, 当git gc --auto执行前被触发。在垃圾回收之前做一些验证或备份是挺不错的。
ServerSide hooks:
1 pre-receive, 当收到push动作之前会被执行。
2 update, 也是收到push动作之前被执行,但是有可能被执行多次,每个branch一次。
3 post-receive, 当push动作已经完成的时候会被触发,可以用此hook来push notification等,比如发邮件,通知持续构建服务器等。
记住所有的hook都应该是可被执行的。
chmod u+x your_hook
所以你可以用shell脚本,perl,python等写钩子。
原文:http://blog.csdn.net/hongchangfirst/article/details/46693237
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
- 三分钟教你学Git(十七) - 钩子
- 三分钟教你学Git (三)之技巧
- 三分钟教你学Git (三)之技巧
- 三分钟教你学Git(二)之命令索引
- 三分钟教你学Git (一)之模型
- 三分钟教你学Git (四)之紧急救助
- 三分钟教你学Git (五)之 查询历史
- 三分钟教你学Git(八) 之 删除分支
- 三分钟教你学Git (十一) 之 集合运算
- 三分钟教你学Git(十五) - 搜索
- 三分钟教你学Git(十二) 之 fast-forward
- 三分钟教你学Git(六) 之 解决冲突
- 三分钟教你学Git(十三) - 二分查找
- 三分钟教你学Git(十六) - 统计
- 三分钟教你学Git(十八) - 重写历史
- 三分钟教你学Git(二十五) 分拣文件
- 三分钟教你学Git(八) 之 删除分支
- 三分钟教你学Git (七) 之 跨平台协作
- 嵌入式linux 博客收藏
- *********背景音乐*******
- 图像视频方面
- ViewPager中怎么获取Fragment
- 程序员篇:8个开发技巧助你薪水更上一层楼
- 三分钟教你学Git(十七) - 钩子
- linux--redhat 如何修改root用户密码
- android获取网络图片简单实现
- Linux操作系统中用RPM安装GCC过程解析
- Android 使用Parcelable序列化对象
- 工作6.30
- 破烂熊-整理过往(1)
- Win7右击计算机管理打不开,提示找不到文件或没有关联的程序
- 17周实验第一天