GitHub: 克隆成功,但检出失败

我在工作中遇到了一些问题 文件被下载到我的本地 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'
164964 次浏览

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

删掉你的垃圾。请确保您没有试图将 Linux 内核或某些这样的庞然大物存储库压缩到几兆字节的帐户空间中。

我解决了这个问题。原来我的磁盘是满的。你可以通过运行来找到答案

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 删除文件夹/文件。

在我的情况下,我的磁盘没有满,这是我如何解决它:

  1. Cd 到项目目录中,并通过运行 git reset取消所有暂存文件(如果有的话)
  2. 通过运行 abc0来撤消工作目录中的所有更改

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

在试图从 Visual Studio 2017(v15.6.0)克隆一个回购时也出现了同样的错误。

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

除了其他可能性,最主要的可能性是窗口对命名文件施加的规则。Git 克隆和签出应该可以在 linux 上正常工作。

更多信息请看这个-https://github.com/msysgit/msysgit/issues/208

我最近遇到了这个问题,错误在于我克隆存储库的文件路径太大,你可以通过将存储库克隆到 C 语言中的某个文件夹中来进行测试:

在我的情况下,这是由于 冒号的文件名。一旦我改变他们,一切工作正常。

对我来说,这是由于长文件名和做一个简单的配置,如下解决它


git config --system core.longpaths true

如果你站在窗户上,你应该:

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

  2. 之后编辑 gitconfiggit config --system core.longpaths true(必须以管理员身份运行)。

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

这招对我很管用

Git config —— global core.longpath true

可能是因为你的文件太大了。 我尝试通过 GitHub 桌面应用程序克隆存储库,它解决了我的问题。

在我的案例中——一个文件名太长,我使用 GitLab 网站删除了那个特定的文件。

然后再次克隆,成功了。

在我的例子中,只有一个命令修复了这个问题。

基特复位

enter image description here

我有同样的错误,由于事实上,我的计算机的防病毒正在删除文件之间的下载和签出(Excel 与 VBA 宏在我的情况下)。从远程分支中删除有问题的文件解决了这个问题(如果可以,也可以禁用防病毒程序)。

在我的例子中,我通过以下方法解决了这个问题:

  1. 安装 git LFS
  2. git config --system core.longpaths true
  3. git config --global core.protectNTFS false

资源清单:

  1. Https://git-lfs.github.com/
  2. Https://confluence.atlassian.com/bitbucketserverkb/error-invalid-path-during-git-clone-to-windows-client-1085186345.html

我的硬盘还没满