Git推送错误,“无法写入Sha1文件名权限被拒绝”

时间:2017-07-30 14:54:37

标签: git

我遇到了git错误

unable to write sha1 filename 
.git/objects/42/e819f886bf31b67c42249a0eff8e8b16cf7611: Permission denied.

每次我拉Git repos并修改我同事的一些文件,然后将它们推送到原始主文件时,就会发生这种情况。如果我这样做,我的同事也有同样的错误。我尝试初始化git repos,但错误再次发生以上操作。 (此错误以前从未发生过。)

我也尝试过其他成员在这里建议的方式,比如将auth更改为777,或者用管理员身份打开git bash,但都是徒劳的。我们使用TortoiseGit,git服务器建立在NAS Synology上。

1 个答案:

答案 0 :(得分:0)

我通过以下方式解决了这个问题: git服务器上的用户不仅必须是git组的成员-假设git是拥有该存储库的服务器上的用户-他们还必须是提交该存储库的每个其他用户的组的成员。

这是因为“对象”下的文件夹归第一个需要它们的人所有。一段时间后,这种文件夹可能会被另一个用户重用。如果其他用户不是最初创建该文件夹的组的成员,则可能会拒绝他们对该文件夹执行任何操作。

在对象下方的文件夹用2个十六进制字母命名,从01到fa-就我而言。