`
alfred_long
  • 浏览: 564462 次
  • 性别: 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

    Git钩子是Git版本控制系统中的一种功能,允许用户在特定的生命周期事件中插入自定义的脚本,以实现对Git操作的扩展和定制。通过利用Git钩子,开发者可以自动化一系列工作流程,如代码审核、格式检查、部署过程等,...

    git基础(git服务器搭建+git教程+git廖雪峰)

    Git是世界上最先进的分布式版本控制系统,它使得团队协作和项目管理变得更加高效和便捷。Git由Linux创始人林纳斯·托瓦兹创建,旨在解决Linux内核开发中的版本控制问题,但后来因其强大而灵活的功能,被广泛应用于...

    Gitblit服务器-1.8.0代码版本服务器.zip

    7. **钩子与webhooks**:通过自定义脚本,Gitblit允许设置预接收和后接收的Git钩子,实现自动化工作流程。同时,webhooks可以将事件推送到其他服务,如持续集成(CI)系统。 8. **多语言支持**:Gitblit界面支持多种...

    git仓库管理工具

    每个开发者的本地机器上都有一个完整的Git仓库,可以进行提交、分支、合并等操作,无需连接到远程服务器。这样提高了开发效率,同时也减少了对中央服务器的依赖。 3. **分支管理**:Git的分支操作非常轻量级,创建...

    liunx下搭建git服务器

    裸仓库没有工作目录,只包含版本库的数据和元数据。接着,我们需要配置post-receive钩子,以允许用户推送代码到服务器。在`/var/git/my_project.git/hooks`目录下创建一个名为`post-receive`的脚本文件,并赋予执行...

    gitGit-1.9.4服务器与TortoiseGit-1.8客户端及中文补丁(附加安装步骤)

    Git服务器的主要组件包括Git守护进程(git-daemon)、Git裸仓库(bare repository)和用于访问控制的钩子脚本(hooks)。在服务器端,你需要配置Git守护进程来监听特定端口,以便客户端可以通过网络连接进行推送和...

    Git Windows XP服务器搭建

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

    gradle-githook:自动创建git钩子脚本

    1. **自动安装**:在项目初始化或更新时,插件会自动检测并安装配置好的git钩子。这样可以避免手动设置钩子,提高开发效率。 2. **模板支持**:你可以为每个钩子提供自定义的模板,插件会根据模板生成相应的脚本。...

    Node.js-Node.js实现Git分布式自动化部署系统

    3. **Git钩子**:学习如何编写Git钩子脚本,如pre-commit用于验证提交,post-receive用于远程仓库接收推送后执行的操作。 4. **SSH keys**:设置SSH密钥对以实现无密码的Git推送,确保安全的远程部署。 5. **Node....

    git服务器软件和配置教程(整套)Git-1.8.4-preview20130916.exe

    6. **配置钩子**:在服务器端的仓库目录下的`hooks`子目录中,可以编写Git钩子脚本来实现自动化操作,比如邮件通知、代码质量检查等。 7. **推送与拉取**:客户端上的开发者可以使用`git push`将本地的修改推送到...

    git-hooks:一组有用的 git 钩子

    - **服务器端钩子**:运行在 Git 仓库服务器上,如 `pre-receive`(接收推送前检查)、`update`(更新分支时运行)和 `post-receive`(接收推送后通知)。 3. **编写与应用 Git Hooks** - **启用 Hook**:将 `....

    在公司搭建自己的git服务器.zip

    在企业环境中,自建git服务器是一项重要的任务,它可以帮助团队高效地进行代码版本控制和协作。下面我们将详细探讨如何在公司内部搭建git服务器,并通过提供的文档和资源来深入理解git的相关知识。 首先,我们需要...

    jenkins+springboot+git自动化部署.docx

    - 配置Git钩子,让Jenkins监听代码仓库的推送事件,自动触发构建 通过以上步骤,我们可以建立一个完整的SpringBoot项目自动化部署流程,从代码提交到构建、测试,再到部署,全程自动化,大大提高了开发效率和产品...

    git服务器 gitblit-1.8.0 for Windows

    - **钩子管理**: 可以配置服务器端的 Git 钩子,实现自动化工作流程。 - **文档托管**: 支持 Markdown 格式的文档托管,方便项目协作。 - **代码浏览与搜索**: 用户可以浏览源代码,进行关键词搜索,便于代码审查...

    Mac 下配置 Git 服务器

    在Mac操作系统上配置Git服务器是iOS开发者经常遇到的需求,因为Git是版本控制的重要工具,能够帮助团队协同开发、管理代码。下面将详细讲解如何在Mac上设置一个本地或局域网内的Git服务器。 首先,确保你的Mac已经...

    git客户端 版本控制器

    5. 高度可扩展性:Git允许自定义钩子(hooks)来实现自动化的工作流程,如代码质量检查、自动部署等。 6. 数据完整性:Git使用SHA-1哈希算法确保代码的完整性和一致性,每次提交都会生成唯一的哈希值,防止数据被...

    完全学会GIT+GITHUB+GIT+SERVER的24堂课

    Git钩子是一系列自动化脚本,如`pre-commit`和`post-receive`,可在特定操作前后执行,用于实现自动化检查、测试或通知。 **9. 撤销操作** 在误操作时,Git提供了一些恢复工具,如`git reset --hard`、`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-1.8.1.2-preview20130201服务器端安装程序

    8. **持续集成/持续部署**:如果服务器还承担持续集成(CI)或持续部署(CD)的角色,可能还需要配置钩子(Hooks),以自动化测试、构建和部署流程。 Git-1.8.1.2虽然较旧,但其基本功能和原理仍然适用。随着Git的...

Global site tag (gtag.js) - Google Analytics