如何解决执行git push时拒绝.git /目录的权限?

我在我的服务器上build立了一个git仓库。 创build了一个新的用户'git'。 我的回购站位于/srv/git/example.git 。 我能够git remote add origin git@domain/srv/git/example.git然后我添加并提交了我的更改。

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

致命:无法创build临时文件:权限被拒绝“和”致命: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组的成员进行push访问。

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

 git config core.sharedRepository group