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仓库更新


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM