我在使用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'
克隆时,git从远程端获取所有对象(压缩并存入.git
目录)。一旦它拥有所有部分,它就会继续解压缩(重新)创建工作目录所需的所有文件。由于没有足够的空间,这一步失败了。这可能是由于磁盘已满或超出磁盘配额(在共享计算机上,通常会强制执行配额以避免用户占用超过其公平份额的空间)。
删除你的残酷。确保您没有尝试将Linux内核或某些此类怪物存储库压缩到几兆字节的帐户空间中。
在我的情况下,我的磁盘未满,这就是我解决它的方式:
git reset
取消暂存所有暂存的文件(如果有)git checkout *
撤消工作目录中的所有更改完成这两个步骤后,您应该能够看到项目文件。
我解决了这个问题。事实证明我的磁盘已满。你可以通过跑步找到答案
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以删除文件夹/文件。
除了其他可能性之外,主要的可能是windows对命名文件施加的规则。 git克隆和checkout应该在linux上正常工作。
欲了解更多信息,请观看这个 - https://github.com/msysgit/msysgit/issues/208
我最近有这个问题,错误是我克隆存储库的文件的路径太大,您可以通过将存储库克隆到C:\中的某个文件夹来进行测试
尝试从Visual Studio 2017(v15.6.0)克隆repo时出现相同的错误。
在我的情况下,在本地安装GIT-LFS解决了这个问题。