一个简单的 git hooks(post-receive)使用流程

发布: 2021-03-05 16:41:20标签: git

一、 服务器创建一个空仓库

01# 进入部署目录
02cd /var/www/temp
03
04# 创建空仓库
05git init --bare temp.git
复制代码

二、配置 git hooks(.temp.git/hooks/post-receive)

01#!/bin/sh
02set -e
03
04# 部署目录
05DeployPath="/var/www/temp"
06
07# 判断是不是远端仓库
08IS_BARE=$(git rev-parse --is-bare-repository)
09if [ -z "$IS_BARE" ]; then
10echo >&2 "失败: 不是远端仓库"
11exit 1
12fi
13
14echo "同步git仓库 ================================================"
15unset GIT_DIR
16# git --work-tree=$DeployPath checkout -f ## 这种方式git删除文件没有被删除
17git --work-tree=$DeployPath reset --hard master
18
19echo "部署成功 ================================================"
复制代码

三、设置文件权限

01# 设置新增文件文件权限
02chomd 777 hooks/post-receive
复制代码

四、客户端推送

01# 关联远程git仓库(只要一次就好了)
02git remote add production user@1.1.1.1:/var/www/temp/temp.git
03
04# 推送
05git push production
复制代码