如何用git 实时更新线上项目代码

利用git 的hooks实时更新线上代码

1. 首先建立一个git仓库( 建议使用 --bare建立空仓库)

[root@VM_0_10_centos xiaohu] git init --bare

2. 克隆git仓库到目标目录(就是你要映射git代码的目录)


git clone /home/git/xiaohu
[root@VM_0_10_centos xiaohu] cd /home/project
[root@VM_0_10_centos project] ls
[root@VM_0_10_centos project] git clone /home/git/xiaohu
Cloning into 'xiaohu'...
done.

这时在 project目录下会把 xiaohu 克隆过来

3. 返回 原来的git仓库目录下的hooks目录

cd /home/git/xiaohu/hooks

4. 打开 post-update.sample文件,替换如下内容

#!/bin/sh
log="./git_hooks_update.log"  #操作日志存放路径 
fsize=2000000      #如果日志大小超过上限,则保存旧日志,重新生成日志文件    
exec 2>>$log  #如果执行过程中有错误信息均输出到日志文件中
#判断是不是远端仓库
IS_BARE=$(git rev-parse --is-bare-repository)
if [ -z "$IS_BARE" ]; then
echo >&2 "fatal: post-receive: IS_NOT_BARE" >> $log;
exit 1
fi
unset GIT_DIR
DeployPath="/home/project/xiaohu" # git更新的目标目录
echo "================================================" >> $log;
curtime=`date +"%Y-%m-%d %H:%M:%S"`
echo "update time: $curtime" >> $log;
#
cd $DeployPath
#git stash
#git pull origin master
git fetch --all
git reset --hard origin/master
echo "================================================" >> $log;

5. 把文件 post-update.sample 重命名为 post-update

这样就完成部署啦,每次提交代码都会生成日志 在这里面: git_hooks_update.log,代码会映射到 /home/project/xiaohu 这个目录下(比较适合几个人的小型项目).

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值