Git推动网站问题

时间:2015-02-24 14:36:32

标签: git

我正在尝试按照本指南http://toroid.org/ams/git-website-howto将git推送到网站。

我已经采取一切措施推进网站,但后来我收到了错误。

user@user-PC:/var/www/html/laravel$ git push web +master:refs/heads/master
Counting objects: 826, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (750/750), done.
Writing objects: 100% (826/826), 6.05 MiB | 663.00 KiB/s, done.
Total 826 (delta 168), reused 0 (delta 0)
remote: error: unable to create file .gitattributes (Permission denied)
remote: error: unable to create file .gitignore (Permission denied)
remote: error: unable to create file CONTRIBUTING.md (Permission denied)
remote: fatal: cannot create directory at 'app': Permission denied

似乎git没有写入服务器的权限。但是当我授予权限并运行

user@user-PC:/var/www/html/laravel$ git push web

在我的localhost上将数据推送到我得到的网站

Everything up-to-date

但是当目录只是空的时候它怎么能是最新的?

1 个答案:

答案 0 :(得分:5)

所以答案(使用the guide you used中的文件夹名称)是你对远程文件夹website.git有写入权限,其中git正在比较历史记录,而不是/var/www/www.example.org其中git应该建造工作树。

所以,当您git push web更新website.git时,post-receive挂钩被触发,git尝试写入/var/www/www.example.org但权限被拒绝。

/var/www/www.example.org添加了写入权限后,您可以转到website.git文件夹并运行GIT_WORK_TREE=/var/www/www.example.org git checkout -f来创建工作树(并展示您的网站)。