使用git hook 自动部署指定分支
环境
Ubuntu 16.04 TLS
git 2.7.4
git远程仓库跟项目部署目录,在同一台服务器上。
以gitbook为例
开始
编辑远程仓库下的文件:
gitbook.git
/hooks/post-receive
#!/bin/bash
# 设置部署根目录
homedir="/mnt/gitbook"
# 判断要部署的分支
while read oldrev newrev refname # 读取stdin
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
if [ "master" == "$branch" ]; then # 判断master分支,才执行部署操作
GIT_WORK_TREE=$homedir git checkout -f
echo 'building'
cd "$homedir" && gitbook install && gitbook build # gitbook插件安装,然后build
echo 'build done'
else
echo 'push done' # 其他分支,只显示push成功
fi
done