`
alfred_long
  • 浏览: 561847 次
  • 性别: 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 Windows XP服务器搭建

    Git Windows XP服务器搭建涉及的关键技术主要包括Git版本控制系统、Windows XP上的SSH服务器配置、公钥-私钥认证以及客户端工具的使用。以下是对这些知识点的详细解释: 1. **Git**:Git是一款分布式版本控制系统,...

    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...

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

    为了实现自动化部署,我们可以设置一个Git钩子,如`post-receive`,当代码被推送到服务器时,这个钩子脚本会自动执行。脚本通常包括以下操作: - 拉取最新的代码到工作目录。 - 更新依赖(如Composer依赖),如果...

    详解在Linux下搭建Git服务器

    创建新的Git仓库,可以在服务器上的`git`用户下创建新目录,然后初始化为Git仓库。例如: ```bash mkdir myproject.git cd myproject.git git --bare init ``` 10. **配置仓库权限** 更新`gitosis.conf`,将...

    progit(git中文文档)

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

    多中心分布式Git架构实践.pdf

    Git是一个强大的分布式版本控制系统,其核心特性在于允许开发者在本地进行提交和操作,无需依赖中央服务器。这种架构为大型项目提供了灵活的工作流程和高效的协作方式。然而,随着项目的扩展和团队的增长,单一的Git...

    Git使用指导1

    2.4. 安装`commit-msg`钩子:通过`scp -p -P 29418 username@172.22.134.211:hooks/commit-msg .git/hooks/`命令获取服务器上的`commit-msg`钩子脚本,这会自动在提交消息中添加唯一的Change-Id。 2.5. 提交和推送...

    Git&Gerrit Client SOP V3.0.pdf

    Git 和 Gerrit 是两个在软件开发中常用的工具,主要用于版本控制和代码审查。Git 是一个分布式版本控制系统,而 Gerrit 是一个基于 Git 的代码审查系统,它提供了代码审核、合并和分支管理等功能,广泛用于开源项目...

    Gerrit 开发人员手册

    1. 安装 Git 客户端:MsysGIT 是命令行版本工具,是其它工具能运行的基础。下载成功后安装,将安装 Git 和一个方便的 bash shell 工具。 2. 创建密钥对:生成密钥对,以供服务器验证身份信息。使用 ssh-keygen 命令...

    Jenkins自动化部署入门详细教程.docx

    在 Jenkins 服务器上,需要创建一个项目,并配置源码管理、构建触发器、构建环境、构建和构建后操作等步骤。 在源码管理中,需要配置 Git 仓库的地址和认证信息。在构建触发器中,需要配置构建的触发条件。在构建...

    git自定义_动力节点Java学院整理

    在Linux系统(推荐使用Ubuntu或Debian)上搭建Git服务器主要分为以下几步: 1. 安装Git:使用`sudo apt-get install git`命令。 2. 创建git用户:使用`sudo adduser git`命令。 3. 配置证书登录:将所有开发者公钥...

    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

    面向新一代调控系统业务场景的权限管理.pdf

    新版本提交到版本库后,用户可以通过指定版本自动部署。这种自动化流程显著提升了电力系统调控云平台的运维效率和可靠性。 4. 实验仿真应用 在电力系统调控云平台的仿真实验中,多种应用产品被应用于实际场景,验证...

    tortoiseGit的基本操作

    TortoiseGit是一款基于Git的图形化客户端工具,它为Windows用户提供了直观且易用的界面,用于管理和版本控制源代码。以下是一些使用TortoiseGit进行源代码管理的基本操作步骤: 1. **安装Git相关文件** 在开始进行...

Global site tag (gtag.js) - Google Analytics