我使用这个Git设置来管理一个网站:http://toroid.org/ams/git-website-howto。
在我激活post-receive钩子之前,一切都会正常工作。在激活它之前,我可以毫无问题地进行推拉。但是,如果我激活钩子,它会说:
fatal: /usr/bin/git-checkout cannot be used without a working tree.
error: hooks/post-receive exited with error code 1它仍然可以正常拉取,但不会像预期的那样复制文件(到webroot)。但是post-receive钩子写道:
#!/bin/sh
GIT_WORK_TREE=/home/domains/mydomain/html/ git checkout -f那么,为什么git会抱怨没有工作树呢?同样的语法也适用于其他网站。
发布于 2011-10-06 00:57:22
您可能应该使用git archive而不是git checkout来完成您在这里尝试做的事情(使用一个钩子将文件导出到web服务器的文档根目录)。
git archive HEAD | tar -xC /home/domains/mydomain/html/这样做的一个优点是不会从存储库中导出某些文件(使用.gitattributes导出忽略标志)。
https://stackoverflow.com/questions/7664852
复制相似问题