7

我正在使用 Amazon EC2 托管一个通过 git 部署到服务器的网站。我之前在同一种 EC2 Ubuntu Linux Server 实例上使用过本教程,它运行良好。但是,当我尝试推送到服务器时,我收到以下错误跟踪:

教程: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.

错误跟踪显示创建文件的权限被拒绝。请你能告诉我哪里出错了吗?

4

4 回答 4

5

我相信如果你跑

 sudo chown -R git:git /srv/git/ 

这来自执行 git push 时如何修复 .git/ 目录的权限被拒绝?

于 2012-08-22T16:53:07.977 回答
4

您可能没有完成本教程的这一部分:

首先,工作树(上面的 /var/www/www.example.org)必须可由运行钩子的用户写入(或者用户需要 sudo 访问权限才能运行 git checkout -f 或类似的东西)。

于 2012-08-22T16:46:32.793 回答
1

FYI, I had this error because I made a hook to update files in a separate website root directory. For example:

/var/www/project.git  # (where we push updates)
/var/www/project.com  # (where the website exists)

I forgot to add the group permission to the project.com directory. This made it all work, index.html appeared in the /var/www/project.com directory once I did the next commit/push!

Full code to make it work assuming you added your user to the "developers" group:

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

And the git setting for shared repository:

git config core.sharedRepository group
于 2015-07-16T15:39:01.613 回答
1

您的防病毒软件或其他程序可能会阻止将该文件写入您的文件夹。如果您仔细观察,您会发现除了权限被拒绝的文件之外,所有其他文件都已创建。您可能拥有阻止创建某些文件类型的保护软件,并且无论您登录的用户类型是什么,在您禁用该软件之前都不会创建该文件。

因此,请检查您的防病毒软件是否不支持那些运行 Windows 的人。

于 2019-06-21T10:10:51.020 回答