用于gitosis的接收后钩

时间:2010-12-20 18:21:34

标签: git hook gitosis git-post-receive

我正在运行Gitosis并希望我的承诺工作能够在我的html目录中暂存。

我尝试使用this方法将GIT_WORKING_TREE设置为我的html目录,但是我收到错误remote: fatal: This operation must be run in a work tree。我认为这是因为Gitosis似乎需要裸存储库。

任何建议都会有很大的帮助。

2 个答案:

答案 0 :(得分:3)

我在这里遇到了同样的问题。我们在post-receive挂钩

中有以下内容
echo "Updating pages"
unset GIT_DIR GIT_WORK_TREE
( cd /path/to/staging/tree ; git pull ; )
echo "Update completed"

如果Git在告诉pull时看到这些环境变量中的任何一个,它就会混淆,而不会查看当前目录。

答案 1 :(得分:0)

您可以使用工作树创建一个后接收挂钩,以cd到非裸存储库,并在推送到裸存储库后执行拉动。

一般来说,最好是推送到裸存储库并使用工作树进行回收。