所以,我在网络驱动器上创建了一个git存储库:
git init --bare --shared
并且工作正常。然后,我使用
将其克隆到本地驱动器git clone z:/testgit
这也很好。然后我添加一个文件,阶段和提交
git stage *
git commit -m "test commit"
并且ALSO工作正常。但!当我试图推动原点时,我得到了这个错误。
git push origin
Counting objects: 3, done.
Writing objects: 100% (3/3), 225 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: unable to write sha1 filename ./objects/f3/e6e90a7465421306fae05c18153260973542e3: Permission denied
remote: fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To z:/testgit14
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'z:/testgit'
当试图直接在服务器上使用git stage *时(在非裸git项目上)我得到类似的错误。
我可以完全访问文件资源管理器中的驱动器,甚至可以使用git初始化存储库。 SSH甚至不应该在这里应用,因为它不是服务器,它是一个网络驱动器。我读过的关于git的一切都说这应该有效。我已经阅读了几十个“如何做”,所有人都说这些确切的步骤,但没有人抱怨权限被拒绝,除非他们谈论服务器上缺少SSH公钥(正如我所说,不应该适用)。
我缺少哪些权限?我应该在哪里寻找并设置适当的权限?
答案 0 :(得分:2)
当您尝试创建git
抱怨的文件时会发生什么?
echo test > ./objects/f3/e6e90a7465421306fae05c18153260973542e3
git
可能正在创建新文件夹(f3
)并且该文件夹未获得正确的权限,原因可能是ACL继承配置错误,或者本地计算机正在尝试调整权限在新创建的文件夹上并弄错了。
如果它是Linux,可能是因为网络驱动器连接了错误的挂载选项,或者umask设置不正确,但我不确定是否可以在Windows机器上更改它们。