GitHub:Clone成功了,但结账失败了

时间:2014-02-26 12:42:00

标签: git github git-svn

我在使用时遇到了一些问题 git clone。文件将下载到我的本地git文件夹中。运行命令

git checkout -f HEAD给了我 -

错误:

  

'无法写入由于缺少磁盘空间而导致的新索引文件错误'。

我手动从计算机中删除了大文件,但仍然遇到同样的错误。

Cloning into 'ffmpeg'...
remote: Counting objects: 7890, done.  
remote: Compressing objects: 100% (4412/4412), done.
Receiving objects: 100% (7890/7890), 299.75 MiB | 24.19 MiB/s, done.
remote: Total 7890 (delta 3346), reused 7846 (delta 3317)
Resolving deltas: 100% (3346/3346), done.
Checking out files: 100% (7019/7019), done.
fatal: unable to write new index file
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'

9 个答案:

答案 0 :(得分:10)

克隆时,git从远程端获取所有对象(压缩并存入.git目录)。一旦它拥有所有部分,它就会继续解压缩(重新)创建工作目录所需的所有文件。由于没有足够的空间,这一步失败了。这可能是由于磁盘已满或超出磁盘配额(在共享计算机上,通常会强制执行配额以避免用户占用超过其公平份额的空间)。

删除你的残骸。确保您没有尝试将Linux内核或某些此类怪物存储库压缩到几兆字节的帐户空间中。

答案 1 :(得分:8)

在我的情况下,我的磁盘未满,这就是我解决它的方法:

  1. cd进入项目目录并通过运行git reset
  2. 取消暂存所有暂存的文件(如果有)
  3. 通过运行git checkout *
  4. 撤消工作目录中的所有更改

    执行这两个步骤后,您应该能够看到项目文件。

答案 2 :(得分:8)

对我来说,这是由于文件名太长,并按如下所示进行了简单的配置即可解决


git config --system core.longpaths true

答案 3 :(得分:2)

我解决了这个问题。事实证明我的磁盘已满。你可以通过运行找到

quota

我的结果说

$ quota

Home Area quota for: jamie_y

Current Usage: 8 GB
Current Limit: 8 GB

运行du命令以查找磁盘使用情况。

The du command shows the disk space used by the files and directories in a directory. The -h option makes the output easier to read, and the -s option summarizes the result. For example,

 du -h -s (quoted from http://linux.about.com/od/commands/a/blcmdl1_dux.htm)

运行rm -rf folderName删除文件夹/文件。

答案 4 :(得分:1)

除其他可能性外,主要的可能性可能是Windows对命名文件施加的规则。 git clone和checkout在Linux上应该可以正常工作。

有关更多信息,请观看此-https://github.com/msysgit/msysgit/issues/208

答案 5 :(得分:1)

就我而言,这是由于文件名中的冒号造成的。更改它们后,一切正常。

答案 6 :(得分:1)

如果你在 Windows 上,你应该这样做:

  1. 转至计算机配置 → 管理模板 → 系统 → gpedit.msc 中的文件系统,打开 Enable Win32 long paths 并将其设置为 Enabled

  2. 在那之后 git config --system core.longpaths true 或编辑 gitconfig(您必须以管理员身份运行)。

  3. git bash打开项目目录,然后运行git reset,然后运行git checkout *

答案 7 :(得分:0)

尝试从Visual Studio 2017(v15.6.0)克隆回购时遇到同样的错误。

在我的案例中,在本地安装GIT-LFS解决了这个问题。

答案 8 :(得分:0)

我最近遇到了这个问题,错误是我克隆存储库的文件路径太大,您可以通过将存储库克隆到C:\

的某个文件夹中来进行测试