从裸露的回购中拉出后接收挂钩

时间:2012-12-14 12:20:12

标签: git

在我们的服务器上,对于每个项目,我们有2个文件夹:/ repository和/ htdocs。 Htdocs是存储库的克隆,它是裸仓库。每个开发人员都有自己的存储库克隆.htdocs可以将项目预览到项目经理。

我想设置一个post-receive钩子,当从开发人员推送更新时自动更新htdoc。

我在接收后的帖子中有以下内容:

#!/bin/sh
GIT_WORK_TREE=../htdocs git pull origin master

但是,当我推送时,我看到以下错误:git error

谁能告诉我出了什么问题?

请注意

#!/bin/sh
GIT_WORK_TREE=../htdocs git checkout -f

有效,但这有点慢(因为项目非常大)。也有人在htdocs中做了一些错误修正,如果它们没有被提交,它们会因checkout -f而丢失。

1 个答案:

答案 0 :(得分:1)

这应该有效:

 GIT_WORK_TREE=../htdocs GIT_DIR=../htdocs/.git git pull origin master

如果你没有指定GIT_DIR,git相信repo仍然是“repository”(裸仓库),它可能没有名为“origin的远程”(因此出现错误信息)