git 系统中 post-receive 钩子不能正常执行 git pull 解决方法

有一个需求是本地git在push到远程 git repo 之后,在远程服务器上自动在/dir/foo下执行 git pull 的操作。想来是一个很简单的需求,不就是在远程的 foo.git 仓库中的 hook 里加一个 post-receive 的钩子,然后在钩子里加入一个 git pull 的操作。但是实际操作的时候发现有问题的,因为这样忽略了一个小细节的问题。

操作之前,头脑里想的代码如下:

#!/bin/sh
cd /var/git/web3/etc/puppet
/usr/bin/git pull

用这个代码在 git push ssh://git@ownlinux.org:/opt/foo.git 之后,发现远程服务器上的 /dir/foo 目录下并没有成功 pull 到最新的数据,并且终端上也有报错(remote: fatal: Not a git repository: ‘.’)。 后面发现 git 的钩子在运行的时候会调用 GIT_DIR 这个环境变量,而不是PWD 这个。所以在 git pull 的时候提示 Not a git repository: ‘.’ ,其中 “.” 正是 GIT_DIR 这个环境变量的值。

钩子的代码改成下面的之后,运行正常了:

#!/bin/sh
unset $(git rev-parse --local-env-vars)
cd /var/git/web3/etc/puppet
/usr/bin/git pull

使用 git 做版本控制的朋友希望你不要和我一样忽略这个小细节的问题。

时间: 2024-09-14 06:05:30

git 系统中 post-receive 钩子不能正常执行 git pull 解决方法的相关文章

win7系统中玩梦幻西游总是一卡一卡的解决方法

win7系统中玩梦幻西游总是一卡一卡的解决方法   故障原因: 1.显卡驱动. 2.梦幻锦衣系统的垃圾代码解决方式. 3.硬盘IO和显卡. 解决方法: 1.放弃360,或者每次上游戏之前都refresh2.0一次; 2.根据技术牛人的方法,删除梦幻西游根目录下v3d_cache文件夹中的所有文件.[这个要求每次登录游戏前都删除]. 我的解决办法是: 1.删除梦幻西游根目录下v3d_cache文件夹中v3d.dat; 2.右击新建文本文档,重命名为v3d.dat[这里注意后缀扩展名也要更改,如果你

64位win7旗舰版系统中u盘NTFS格式化选项不见了的解决方法

  方法一. 1)首先将U盘插上win7系统电脑之后,打开设备管理器,然后选择"磁盘驱动器"中的U盘; 2)双击u盘出现属性框,策略中选择"为提高性能而优化",确定. 方法二. 1)首先打开win7系统中的"开始-运行",输入CMD,然后输入Convert盘符:/fs:ntfs.

VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法_vb

通常用VB 写的程序在32位系统上可以正常的运行,但到了64位系统中虽然可以运行但是无法修改OEM信息.经过查找原因可以发现,当我们在访问文件夹"SYSTEM32"的时候系统会自动转向到文件夹"SYSWOW64"下,当我们在访问某些注册表键值的时候,和文件转向类似,系统也会自动地把程序的访问转向到Wow6432Node下面. 先来谈谈文件系统的转向,查找了一些资料,并没有VB相关的资料,但是可以查到2个相关函数:Wow64DisableWow64FsRedirect

win7系统中的本地组策略打不开了解决方法图文教程

本地组策略编辑器窗口中,咱们可以实现很多功能的操作,大家在之前小编的文章中应该有所了解了吧?当然,本地组策略编辑器也并非只是简单的这个功能而已,严格来说,在win7旗舰版系统下载中,本地组策略是管理员为用户和计算机定义并控制程序.网络资源及操作系统行为的主要工具,也是电脑的一个基本组件,相当重要,那么本地组策略编辑器窗口突然打不开了,我们要怎样才能将它还原回来呢?下面,小编就来介绍一下具体的操作流程吧! 1.首先,咱们单击win7旗舰版的开始菜单或者是直接单击键盘上的windows图标,这样就可

Win 7系统中天气工具“您所在的地区无法使用服务”解决方法

原因分析:出现这个问题并不是系统问题而是因为这个天气工具与我办的气象法规定有所冲突所以天气信息被屏蔽了,那么我们可以使用其它工具来解决 1.点击鼠标右键选择"小工具"        2.选择右下角"联机获取更多小工具"         3.选择网页里面天气预报分类         4.下载天气预报小插件         5.安装小工具插件         6.选择小插件后,显示正常天气     友情提示 现在我们只要上百度就可以搜索到大量关于天气的工具或直接在百度也

Windows系统中Java调用cmd命令及执行exe程序的方法_java

Java调用cmd命令,并输出显示信息: package com.anxin.cmd.test; import java.io.BufferedReader; import java.io.InputStreamReader; public class Command { public static void main(String[] args) { try { Runtime rt = Runtime.getRuntime(); Process pr = rt.exec("cmd /c di

android中ListView多次刷新重复执行getView的解决方法_Android

以前倒是没有注意listview的getView会重复执行多次,这次因为布局比较复杂,所以在测试的时候去断点跟踪,发现同一条数据不断的重复执行.觉得很奇怪,于是上网搜索了一下.网上的解释基本一致,就是ListView布局时height和width都不是fill_parent,导致不断计算高度,不断刷新.或者说它的父容器没有设置成fill_parent. 可以布局太复杂的情况下,全部按照fill_parent去调整不现实.所以想了另一种方案,就是动态固定高度. 在程序运行后,固定ListView的

Win7系统中恢复桌面上我的文档图标的方法

Win7系统中恢复桌面上我的文档图标的方法 1.先在Win7系统桌面上,右键点击鼠标,接着会进入"个性化"操作界面.然后在个性化窗口上,点击左侧中的"更改桌面图标"; 2.接着在"用户的文件"复选框内打上勾,再点击确定按钮,然后在桌面上刷新一下;

WinXP系统中的帮助和支持打不开如何解决?

  我们在使用WinXP统的过程中,如有问题解决不了,这时候我们就可以通过系统中自带的"帮助和支持"向联机Microsoft支持技术人员寻求帮助.但最近有用户反应,当它想打开系统中自带的"帮助和支持"功能时,却发现无法启动"帮助和支持",怎么办呢?下面小编就和大家说一下WinXP系统中的帮助和支持打不开如何解决. 步骤如下: 1.单击"开始",选择"控制面板". 2.点击"性能和维护".

如何把NOTES8邮箱整合进OA系统中的问题,急(要求一天解决)!!!!!

问题描述 公司现在接了个OA系统的项目,是用JAVA开发一个B/S架构的OA系统,客户要求把NOTES8邮箱整合进OA系统中,各位有做过或未做过的高手有什么最简便的实现方案能提供下吗,先谢谢了!!! 解决方案 解决方案二:是was吗?如果是的话,可以导出一个KEY文件,然后导入到OA系统中,然后做web-sso,这不是一天能解决的问题~解决方案三:谢谢你了哈,还是有点不明白,之后跟他们确认了下,是以WEB形式访问notes,notes支持web形式的访问,再在OA系统中封装一下访问地址,这有可能