git钩子 自动更新服务器上版本库

使用git以后,开始在push文件以后总是需要到服务器上去git pull 才能更新,很是麻烦。

后来查找资料,发现git有类似于svn中的钩子设置,在hooks文件夹的文件中。

我使用的是gitosis来管理git版本库,所以,在repositories中的项目中的hooks文件中进行设置,开始设置post-receive,发现shell脚本可以运行,git可以运行,唯独在文件中添加 git pull 时会报错,提示:"fatal: Not a git repository: '.'"。hook脚本执行了cd之后,继续执行git语句拉取的时候还是在hooks文件夹下,而不是cd的文件路径。

 

#!/bin/sh
export LANG=zh_CN.UTF-8
cd /www/myproject/
unset GIT_DIR //重要是这里..
git pull origin master

 上面主要是添加了unset GIT_DIR 

git的hooks里面默认有一些环境变量,会导致无论在哪个语句之后执行git命令都会有一个默认的环境路径,既然这样unset 掉默认的GIT环境变量就可以了。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值