git hook post收到不起作用

时间:2014-01-25 09:07:39

标签: git

背景

我在我的服务器裸仓库上设置了post-receive hook

-rwxrwxr-x 1 midnight midnight   58 Jan 24 19:45 post-receive

$ cat post-receive 
GIT_WORK_TREE = /var/www/mongo_conprima git checkout -f

/var/www/mongo_conprima

的文件权限
drwxr-xr-x  3 midnight midnight     4096 Jan 25 08:40 mongo_conprima

Porblem 当我从本地主机推送时出现以下错误

Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 228 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: hooks/post-receive: 1: hooks/post-receive: GIT_WORK_TREE: not found

我想在每次推送服务器[问题]后更新生产目录:git hook to update changes to working directory and bare git directory

1 个答案:

答案 0 :(得分:2)

你所拥有的是shell脚本语法问题而不是git问题。

在shell脚本中:

a b c

使用参数ab运行命令c。即使您将b替换为=也是如此,a仅使用参数=c运行命令GIT_WORK_TREE。所以这是尝试运行命令=,带有参数/var/www/mongo_conprima_agitcheckout-fVAR=value cmd args... (按此顺序) )。

用于设置环境变量然后运行命令的shell脚本语法是:

=

简而言之,您需要删除{{1}}符号前后的空格。