2012-12-05 79 views
6

使用Windows 7,我们在网络驱动器上建立了一个裸露的GIT存储库,以便多个用户可以从中取出/推送。我能够在本地和多个其他网络驱动器上创建新的工作回购。但是,当我尝试克隆相同网络驱动器(不同的文件夹)上的新工作存储库时,它会失败。无法在网络驱动器上克隆GIT存储库

使用TortoiseGIT后,我右键单击并选择“GIT克隆”,将所有必要的路径放入我的裸回购(新工作回购已填充)并点击确定,出现以下错误:

Cloning into 'R:\path\to\new\repo'... done. 
error: refs/remotes/origin/master does not point to a valid object! 
error: Trying to write ref refs/heads/master with nonexistent object 5d2164db2c61efc7a5598f6ff75ed3fbbb12456e 
fatal: Cannot update the ref 'HEAD'. 
fatal: The remote end hung up unexpectedly git did not exit cleanly (exit code 128) 

并且它无法创建回购。但它确实建立了新文件夹&“.git”子文件夹结构。

这不是一个r/w权限问题,因为我可以r/w任何其他文件,但似乎无法创建这个新克隆的回购。我的同事也不能。即使我到了网络驱动器上的另一个文件夹,我仍然无法成功克隆回购。令人惊讶的是,如果我只是复制/粘贴在另一个位置创建的回购站,那么手动执行“拉”操作,它可以正常工作并成功更新。

关于接下来要做什么的任何想法?很明显,我谷歌搜索“退出代码128”和“无法更新裁判'头'”,但无法找到解决我的问题。这也可能是很简单的东西是我们忽略的,但我们才刚刚开始使用Git,这是真正导致我们头疼......

更新:我注意到,当我做手工拉从GIT到我的“副本”,它正在做一个快进。也许这提供了一些额外的线索?

From R:/path/to/repo 
* branch   master  -> FETCH_HEAD 
Updating 5d2164d..d75bdb7 
Fast-forward 
Files.py | 3 +++ 
1 file changed, 3 insertions(+) 
Success 
+0

这看起来像是您试图克隆的回购已损坏。在错误信息中给出的ref ID怎么样?它是否是正确的HEAD,它存在吗? – Chronial

+0

@Chronial,我将如何识别头部中的ref ID是否正确?就像我说的,我对这个真的很陌生。谢谢你的建议! – RyanDalton

+0

在主repo中运行'git log 5d2164db2c61efc7a5598f6ff75ed3fbbb12456e'并查看它是否失败。但是如果你可以将它克隆到另一个目录,那可能是正确的。 – Chronial

回答

0

请msysgit通过命令行执行此

git clone /r/path/to/my/repo /r/some/other/path 

此外,我会建议使用Git命令行,因为它是被设计为在命令行中使用的工具。您将能够找到更多的帮助,更快速地解决您遇到的任何问题。

+0

这与TortoiseGIT运行的命令行相同。返回的错误消息(如我的原始问题所示)完全相同。它不能解决“不存在的对象”的固有问题。 – RyanDalton

+0

有趣。如何使用file:///协议而不是路径?你只能用它来代替第一个路径。 –

4

Git可能会试图做一些聪明的东西,硬链接在网络驱动器上失败。尝试使用git clone --no-hardlinks /r/path/to/my/repogit clone file:///r/path/to/my/repo

+0

谢谢。这对我来说固定的东西。 – Yann