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



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

然而,当我尝试git push origin master时,它在上失败了

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

在服务器上我运行:

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

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

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

当然。以前的问题是,您通过SSH登录的git用户无法写入存储库。

根据您的需要,您可以考虑用户和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

最新更新