uncategorized

使用GitHook实现代码自动部署

0.准备工作

1
2
3
4
5
6
# 安装Git
apt-get install git

# 创建git用户并设置密码
adduser git
passwd git

1.在服务器创建Git仓库

1
2
3
# 在/srv/目录下创建Git裸仓库test.git
cd /srv
git init --bare test.git

2.创建工作目录

在此目录中执行部署程序

1
2
3
4
5
6
# 在git用户目录下面创建工作目录blog
cd /home/git
mkdir blog

# 修改所有者权限
chown git:git -R blog

3.通过Git Hook自动部署代码

Git服务在收到用户提交的代码后会执行hooks目录中的post-receive文件。
通过在post-receive文件中编写部署程序,我们就可以实现自动部署代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 进入/srv/test.git/hooks目录,并创建post-receive文件
cd /srv/test.git/hooks
touch post-receive

# 修改文件权限
chown git:git post-receive
chmod +x post-receive

# 在post-receive中写自动部署程序,例如:
--- post-receive文件内容 ---

#!/bin/bash

# 工作目录
DIR=/home/git/blog

git --work-tree=${DIR} clean -fd
git --work-tree=${DIR} checkout --force

# 自动部署程序
cd ${DIR}
cnpm i &&
hexo generate &&
cp -rf public/* /usr/share/nginx/blog/

--- ---

4.本机使用

1
2
3
4
5
6
# 在开发电脑上克隆仓库
git clone git@[domain]:/srv/test.git

# 或者提交现有仓库
git remote add server git@[domain]:/srv/test.git
git push -u server master
Share