使用 git hook 快速部署网站

使用 git hooks 来让 git push 自动部署网站。

前言

git hooks, 和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本 ,这就是 git hooks , 钩子解释见 维基百科

钩子编程(hooking),也称作“挂钩”,是计算机程序设计术语,指通过拦截软件模块间的函数调用、消息传递、事件传递来修改或扩展操作系统、应用程序或其他软件组件的行为的各种技术。处理被拦截的函数调用、事件、消息的代码,被称为钩子(hook)。

git 仓库下面,有一个 hooks 文件夹存储这些特定条件执行的脚本。这一次用到的是 post-receive ,在收到仓库更新时执行的脚本,于是就可以实现你在本地 pc git push后,远端仓库自动部署。

开始

创建并编辑此文件,我的脚本:

1
2
3
4
5
6
7
8
#!/bin/bash
unset GIT_DIR

cd /home/wwwroot/hexo
git pull orign master

echo "success"
exit 0

思路还是很好理解的,初始化目录 >> 移动到网站目录 >> 拉取仓库代码 >> 输出提示内容 >> 退出
origin 写错了,也懒得改了

其他

  1. 编写脚本倒是比较简单,但是还有折磨人的权限问题。
    Web 目录的所有者是 www 组也是 www ,其他普通用户是没有权限更改的,于是就要更改权限,但是把给把网站目录设置为 766 等并不是一个明智的选择,于是就可以把 git 的用户加到 www 所在用户组,这样网站目录设置为 764 就可以了(找不到更好的解决方法了)

关于 Linux 用户和用户组管理可参考 鸟哥的 Linux 私房菜

编辑 /etc/groupwww 后面加上 git .

Linux 的用户可以属于多个 组 ,用户在创建的时候有一个初始属组,每个用户必须属于至少一个组,可以加入多个附加组,加入后就可以有用这个 组 的权限,可在 /etc/passwd//etc/group/ 编辑

(:з」∠)

今天还是初音公主哒Lazy

这图是来自


还是雄之助哒。