在我们的服务器上,对于每个项目,我们有2个文件夹:/ repository和/ htdocs。 Htdocs是存储库的克隆,它是裸仓库。每个开发人员都有自己的存储库克隆.htdocs可以将项目预览到项目经理。
我想设置一个post-receive钩子,当从开发人员推送更新时自动更新htdoc。
我在接收后的帖子中有以下内容:
#!/bin/sh
GIT_WORK_TREE=../htdocs git pull origin master
但是,当我推送时,我看到以下错误:
谁能告诉我出了什么问题?
请注意
#!/bin/sh
GIT_WORK_TREE=../htdocs git checkout -f
有效,但这有点慢(因为项目非常大)。也有人在htdocs中做了一些错误修正,如果它们没有被提交,它们会因checkout -f
而丢失。
答案 0 :(得分:1)
这应该有效:
GIT_WORK_TREE=../htdocs GIT_DIR=../htdocs/.git git pull origin master
如果你没有指定GIT_DIR,git相信repo仍然是“repository
”(裸仓库),它可能没有名为“origin
的远程”(因此出现错误信息)