使用网络驱动器作为git存储库

时间:2016-10-26 03:31:26

标签: windows git shared-directory

所以,我在网络驱动器上创建了一个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公钥(正如我所说,不应该适用)。

我缺少哪些权限?我应该在哪里寻找并设置适当的权限?

1 个答案:

答案 0 :(得分:2)

当您尝试创建git抱怨的文件时会发生什么?

echo test > ./objects/f3/e6e90a7465421306fae05c18153260973542e3

git可能正在创建新文件夹(f3)并且该文件夹未获得正确的权限,原因可能是ACL继承配置错误,或者本地计算机正在尝试调整权限在新创建的文件夹上并弄错了。

如果它是Linux,可能是因为网络驱动器连接了错误的挂载选项,或者umask设置不正确,但我不确定是否可以在Windows机器上更改它们。