`
alfred_long
  • 浏览: 559475 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • 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环境变量就可以了。

 

分享到:
评论
1 楼 yankeys 2016-07-18  
看了很多篇博主的帖子,最近注册了之后才可以发表评论。不知道博主对于主服务器的禁止指定远程客户端禁止push的钩子有没有过了解。最近一直在看文档,感觉有点吃力,是否可以一起探讨一下

相关推荐

    Git权威指南PDF完整版

    3.1.3 从Git版本库进行安装/ 23 3.1.4 命令补齐/ 25 3.1.5 中文支持/ 25 3.2 在Mac OS X 下安装和使用 Git/ 26 3.2.1 以二进制发布包的方式安装/ 26 3.2.2 安装 Xcode/ 27 3.2.3 使用 Homebrew 安装 Git/ 29 3.2.4 ...

    Git权威指南

    第5篇介绍了git服务器的架设,首先讲解了http协议、git协议、ssh协议的使用,然后讲解了gitolite、gitosis、gerrit等服务器的架设方法,最后还讲解了git版本库的托管。第6篇介绍了版本库的迁移,包括如何从cvs、svn...

    autodeploy-git-hook:一个简单的bash脚本,可使用Git钩子部署到生产环境中

    安装为了让它工作,在你的远程服务器上创建一个裸仓库,并将post-receive hook 脚本放在它的 hooks 目录中: $ git init --bare ~ /project.git$ curl -L -o ~ /project.git/hooks/post-receive ...

    Git权威指南【样张】

    第5篇介绍了git服务器的架设,首先讲解了http协议、git协议、ssh协议的使用,然后讲解了gitolite、gitosis、gerrit等服务器的架设方法,最后还讲解了git版本库的托管。第6篇介绍了版本库的迁移,包括如何从cvs、svn...

    progit(git中文文档)

    在*第一章*,我们将介绍版本控制系统(VCSs)和 Git 的基本概念——不涉及技术内容,仅仅是什么是 Git, 为 什么它会成为 VCSs 大家庭中的一员,它与其它 VCSs 的区别,以及为什么那么多人都在使用 Git。然后,我们将 介绍...

    使用Git实现Laravel项目的自动化部署

    不知道大家一开始是怎么使用 git 进行开发的,反正我个人是先将代码提交到 github 仓库,然后用 SSH 登录到服务器,然后进行克隆或者版本更新。听起来就很麻烦,当然实际操作中也很麻烦,那么有什么可以 “一劳永逸 ...

    Gogs轻量级git服务-其他

    支持活动时间线支持SSH以及HTTP/HTTPS协议支持SMTP、LDAP和反向代理的用户认证支持反向代理子路径支持用户、组织和仓库管理系统支持添加和删除仓库协作者支持仓库和组织级别Web钩子(包括Slack集成)支持仓库Git钩子...

    jekyll-boilerplate:有用的文件,以开始在新的Jekyll网站上工作

    在我工作的任何站点上我通常都需要这些内容: 使用NPM进行包裹管理 + 使用JS测试使用自动代码和Markdown格式化使用Git钩子使用Webpack和Babel进行ES6转译和捆绑使用PostCSS进行Sass转译和处理本地服务器和使用实时...

    template-package:无服务器包的存储库模板

    改变我自己 项目初始化步骤 初始化存储库(通常通过git init ) 安装依赖项(通常通过npm install ) 确认预先配置的 precommit git 钩子,... (自动标记新版本需要)使用帮助程序配置GET_LAST_VALIDATED_COMMIT_H

    juc-jenkins-2018:JUC Jenkins 2018演示源代码

    juc-jenkins-2018 JUC Jenkins 2018演示源代码 ... 通过使用存储库的URL替换路径并将钩子的名称更改为post-receive,此钩子适用于远程服务器。 詹金斯(Jenkins)发射 从获取战争形式的Jenkins的最新版本,然

    react-starter::rocket:具有易用状态管理和样式化组件的最小化React样板

    该样板已经包括一些基本组件以及我们在项目中经常使用的钩子和工具。 该入门工具包基于以下库: 入门 或克隆: git clone git@github.com:wbkd/react-starter.git && cd react-starter 然后通过安装依赖项: ...

    auroradigital.co

    这是为我们的动力的代码存储库。 设置 设置是自动的,您可以使用三个简单的命令来完成设置: $ git clone https://github.com/aurora-digital/auroradigital.co $ cd auroradigital.co $ bin/setup bin/setup脚本...

    next-mobile-boilerplate:使用antd-mobile的下一个mobile样板,从开发到部署均提供全面支持

    使用lint-staged在pre-commit钩子中组合prettier和ESlint 。 不必担心将垃圾代码滑入您的代码库中。 pm2作为生产流程经理。 远程服务器api代理的http-proxy-middleware ,以避免CORS错误。 用于生产静态资源版本...

    starwars-blog

    以及具有实时重新加载功能的webpack开发服务器(适用于Windows,Mac,Linux或Gitpod): $ npm run start款式您可以更新styles/index.scss或创建新的.scss内部文件styles/并将它们导入到当前的SCSS或JS文件根据您的...

Global site tag (gtag.js) - Google Analytics