git 远程仓库自动更新

在远程服务器上架设了一个http server,然后通过git在本地做开发时,不想每次都登录到远程服务器上做pull操作,这个需求可以通过git hooks特性来实现。

 

原理是每当有用户更新代码时,会触发xxxx.git的hooks中的post-receive,然后把要执行的操作写在post-receive中就可以了。

 

开始的想法是

#!/bin/sh

cd /project/canyon

git pull 

currTime=$(date "+%Y%m%d%H%M%S")

echo $currTime >> /project/canyon/log

然后这种写法会出现找不到git repository 的问题,原因是在执行git pull 时引入了$GIT_DIR变量

remtoe: fatal: Not a git repository: '.'

于是我们将post-receive改为

#!/bin/sh

unset $(git rev-parse --local-env-vars)

dir="/project/canyon/"

logfile="/project/canyon/log"

cd $dir

git pull 

currTime=$(date "+%Y%m%d%H%M%S")

echo $currTime >> $logfile

这样每一次用户pull成功都会将/project/canyon中的git仓库更新

转载于:https://www.cnblogs.com/JoJosBizarreAdventure/p/5960212.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值