我正在尝试按照本指南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
但是当目录只是空的时候它怎么能是最新的?
答案 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
来创建工作树(并展示您的网站)。