2008-12-29 45 views
9

我的一位同事遇到了在他的机器上推送来自git的更改的问题。当他试图推动他得到以下错误Git:无法从一台计算机上推

 
    D:\Projects\test1\best-practices>git push 
    Counting objects: 4, done. 
    Compressing objects: 100% (2/2), done. 
    Writing objects: 100% (3/3), 273 bytes, done. 
    Total 3 (delta 1), reused 0 (delta 0) 
    error: unable to create temporary sha1 filename ./objects/42: Permission denied 

    fatal: failed to write object 
    error: unpack failed: unpacker exited with error code 
    To //civ3s012/gitrepos/best-practices/.git 
    ! [remote rejected] master -> master (n/a (unpacker error)) 
    error: failed to push some refs to '//civ3s012/gitrepos/best-practices/.git' 

服务器是Windows机器,但是从他的机器,因为是客户端 - 如果他登录到另一台机器,他能推就好了。没有其他人有这个问题 - 这似乎是一个服务器权限问题,但我们已经裁定,尽可能我们可以告诉。另外,他可以登录到另一台机器并使用相同的用户名进行推送,这看起来好像不是服务器权限。任何想法可能在这里出错?

+1

权限问题是什么给了我这个错误。 – Kzqai 2011-06-27 20:03:43

回答

6

我不是一个Windows用户,所以我在这里暗暗地刺了一下。它看起来像挂载了远程文件系统,你只是推着它(不使用ssh://或git://)。 FS是不是只读安装?他可以在那里创建/修改文件吗(git以外)?

+0

我的错误是`远程解压缩失败:无法创建临时对象目录到// <我的本地计算机>/repository/tutorial3.git`。是的,我使用我自己的Win7机器。你的回答可以帮助我。一旦我更改了存储库文件夹的“共享权限”(在'阅读'旁边添加'更改'),我可以推送。谢谢。 – user3454439 2017-05-10 09:50:59

0

也许他在他本地的repo中创建了一个分支,该分支已经存在于服务器上,并且ref由于是由别人创建的而无法更新?

+0

他刚刚开始在这个项目上工作,并没有明确创建任何分支。 – 2008-12-30 15:07:46

3

我知道这是一个简单易用的系统管理员放风答案,但是你有没有证实他的硬盘不满?

+0

是的,这发生在我身上,我现在大部分时间都在检查。 – 2008-12-30 15:00:27

5

尝试增加该配置变量到远程存储库:

$ git config core.sharedRepository "all" 
$ git config receive.denyNonFastForwards True 

这些由--shared选项git init通常设置,当回购设置。

我不知道windows权限如何交互,所以我不确定这是否是解决方案。但我知道有时一个linux用户可以用这种方式在Git远程中创建具有失败权限的文件。它发生在他们属于适当的群组但没有作为他们的主要群组。将回购共享设置为all可以解决此问题。

这似乎发生在从SVN或CVS导入的共享回购站中。

+0

这并没有解决我们的问题 - 作为一个方面说明,这个回购没有从SVN或CVS导入,它是从git开始的。不过谢谢。 – 2008-12-30 15:10:28

0

另一个脑死的答案。你确定你有权限阅读这些文件?在我身上发生过几次,我会因其他用户的错误而作出更改。后来我无法推动。 Chown是你的朋友。

2

问题最终成为该共享的存储密码,该共享允许读访问,但不允许写访问。即使我们用适当的用户名和密码明确地安装了驱动器,也必须在后台使用存储的密码,这使得难以追踪。要清除密码,我们转到控制面板,用户帐户,单击高级,管理密码,并删除相关服务器的登录信息。之后,所有事情都应该如此。我接受Pat Notz的回答,因为它最终成为只读FS。谢谢!

+0

感谢您发布根本问题和解决方案的细节! – 2009-01-04 10:32:20

相关问题