繁体   English   中英

执行 git 推送时如何修复 .git/ 目录的权限被拒绝?

[英]How to fix permission denied for .git/ directory when performing git push?

我已经在我的服务器上设置了一个 git 存储库。 创建了一个新用户“git”。 我的仓库位于/srv/git/example.git中。 我能够git remote add origin git@domain/srv/git/example.git然后我添加并提交了我的更改。

但是,当我尝试git push origin master时,它失败了:

致命:无法创建临时文件:权限被拒绝'和'致命:sha1文件写入错误:无效参数'

在我运行的服务器上:

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

这解决了我的问题,但我想知道这是否正确?

在服务器上我运行 sudo chown -R git:git /srv/git/ - 这解决了我的问题,但我想知道这是否是正确的做法?

绝对地。 之前的问题是 git 用户(您通过 SSH 登录)无法写入存储库。

根据您的需要,您可以考虑用户和 SSH 密钥的不同组合,或可用于更精细控制访问的许多附加程序(gitolite 等)之一。

首先,修复远程.git目录中的文件权限,例如

sudo chmod -R ug+w /var/www/.git
sudo chown -R git:git /var/www/.git

root:root如果您想分配root组的成员进行推送访问。

然后需要将目标主机上的 git 存储库设置为共享,因此需要在远程运行以下命令:

git config core.sharedRepository group

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM