我正在使用Amazon EC2来托管通过git部署到服务器的网站。我之前在同一种EC2 Ubuntu Linux服务器实例上使用过这个教程,它运行得很完美。但是,当我尝试推送到服务器时,我收到以下错误跟踪:
教程:http://toroid.org/ams/git-website-howto
跟踪:
$ git push origin master
Counting objects: 5, done.
Writing objects: 100% (3/3), 250 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: unable to create file index.html (Permission denied)
To ssh://ubuntu@myserv.er/var/www/website.git
8068aac..04eae11 master -> master
目前我在存储库中只有一个文件,即index.html
。
错误跟踪显示正在拒绝创建该文件的权限。请你告诉我我哪里出错了?
答案 0 :(得分:5)
我相信如果你跑
sudo chown -R git:git /srv/git/
这来自How to fix permission denied for .git/ directory when performing git push?
答案 1 :(得分:4)
您可能没有完成本教程的这一部分:
首先,工作树(上面的/var/www/www.example.org)必须是运行钩子的用户可写的(或者用户需要sudo访问权来运行git checkout -f或类似的东西)。
答案 2 :(得分:1)
仅供参考,我有这个错误,因为我做了一个钩子来更新单独的网站根目录中的文件。例如:
/var/www/project.git # (where we push updates)
/var/www/project.com # (where the website exists)
我忘了将组权限添加到project.com目录。这使得一切正常,一旦我完成下一次提交/推送,index.html出现在/var/www/project.com目录中!
完整代码,假设您将用户添加到"开发人员"组:
sudo chmod -R g+ws /var/www/project_name.git
sudo chgrp -R developers /var/www/project_name.git
sudo chmod -R g+ws /var/www/project_name
sudo chgrp -R developers /var/www/project_name
共享存储库的git设置:
git config core.sharedRepository group
答案 3 :(得分:0)
您的防病毒软件或某些程序可能正在阻止该文件写入您的文件夹。如果仔细观察,您将意识到除拒绝访问权限的文件以外,所有其他文件均已创建。 您可能拥有的保护软件正在阻止某些文件类型的创建,并且无论您登录的用户类型是什么,除非禁用该软件,否则不会创建该文件。
因此,对于那些正在运行的Windows,请检查您的防病毒软件是否不在此保护之下。