Git hooks初探
题记
由于打算把博客从Git Pages同步到自己的服务器上,需要借助Git hooks技术,所以来简单学习一下。
Git hooks是什么
Git Hooks就是那些在Git执行特定事件(如commit、push、receive等)后触发运行的脚本(这个脚本可以是shell、python、Ruby等等)。可以类比成一个触发器,当监听到某种事件时,就会自动触发,并执行脚本。
Git hooks能做什么
-
自定义commit消息:看一下《5分钟实现自定义commit信息~ 秒懂git hooks~》这个视频就懂了。
-
自动部署代码
Git hooks基本操作
查看Git目录里面的文件结构:
|
|
hooks
子目录就是存放hooks的地方。
|
|
看这些样例的文件名我们就能知道这些hooks是在什么时候触发的,以prepare-commit-msg.sample
为例,这个hooks就是当执行git commit
命令时被触发。实际使用的时候,只需要在hooks目录新建``prepare-commit-msg文件,然后在里面编写你的脚本,记得写上
!# 你的解释器的位置`
以下列举几个不同hooks所能实现的功能:
pre-commit: 检查每次的commit message是否有拼写错误,或是否符合某种规范。
pre-receive: 统一上传到远程库的代码的编码。
post-receive: 每当有新的提交的时候就通知项目成员(可以使用Email或SMS等方式)。
post-receive: 把代码推送到生产环境。
举一个hooks脚本的例子,例子来源:《git: 提交前强制检查各个项目用户名邮箱设置》
该脚本写在pre-commit
文件中, 用途是检查用户名邮箱设置:
|
|
参考资料
-
Git Hooks 简书文章
-
Git Hooks实现代码自动部署 姑苏流白的文章
-
HEXO 部署到云服务器详细指南 简书文章
-
自定义 Git - Git 钩子 Git community