我在服务器上设置了一个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