前言
git hooks, 和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本 ,这就是 git hooks
,钩子解释见维基百科
钩子编程(hooking),也称作“挂钩”,是计算机程序设计术语,指通过拦截软件模块间的函数调用、消息传递、事件传递来修改或扩展操作系统、应用程序或其他软件组件的行为的各种技术。处理被拦截的函数调用、事件、消息的代码,被称为钩子(hook)。
在 git
仓库下面,有一个 hooks
文件夹存储这些特定条件执行的脚本。这一次用到的是 post-receive
,在收到仓库更新时执行的脚本,于是就可以实现你在本地 pc git push
后,远端仓库自动部署。
开始
创建并编辑此文件,我的脚本:
#!/bin/bash
unset GIT_DIR
cd /home/wwwroot/hexo
git pull orign master
echo "success"
exit 0
思路还是很好理解的,初始化目录>>移动到网站目录>>拉取仓库代码>>输出提示内容>>退出我 origin
写错了,也懒得改了
其他
- 编写脚本倒是比较简单,但是还有折磨人的权限问题。
Web
目录的所有者是www
组也是www
,其他普通用户是没有权限更改的,于是就要更改权限,但是把给把网站目录设置为766
等并不是一个明智的选择,于是就可以把git
的用户加到www
所在用户组,这样网站目录设置为764
就可以了(找不到更好的解决方法了)
关于 Linux 用户和用户组管理可参考鸟哥的Linux私房菜
编辑 /etc/group
在 www
后面加上 git
.
Linux
的用户可以属于多个 组 ,用户在创建的时候有一个初始属组,每个用户必须属于至少一个组,可以加入多个附加组,加入后就可以有用这个 组 的权限,可在/etc/passwd/
和/etc/group/
编辑
图_(:з」∠)_
初音
Lazy