GitHub:克隆成功,但结帐失败

Posted

技术标签:

【中文标题】GitHub:克隆成功,但结帐失败【英文标题】:GitHub: Clone succeeded, but checkout failed 【发布时间】:2014-03-29 07:15:43 【问题描述】:

我遇到了一些问题 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 checkout -f HEAD 你有一个名为 HEAD 的分支吗? 是的。我在 .git 文件夹中有一个名为 HEAD 的文件夹。我应该删除那个文件夹吗? no 不要删除 .git 文件夹中的任何内容 执行 git clone 后,它会创建一个文件夹,该文件夹是您的应用程序目录,在该文件夹内您将拥有 .git 文件夹。您的 app/code 文件夹未链接到 git 并且使用 git checkout branchname 您可以结帐到不同的分支 谢谢!我将源代码放在 .git/branches 下。这样可以吗?你知道如何解决磁盘空间不足的错误吗? 【参考方案1】:

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

删除你的垃圾。确保您没有试图将 Linux 内核或某些此类怪物存储库挤入您几兆字节的帐户空间。

【讨论】:

在我的情况下是由于文件名过长 @sashikanta 检查日志..如果是由于文件名过长,请尝试在 C:\checkout\ 等小路径上进行克隆 如果文件名太长:***.com/questions/22575662/…【参考方案2】:

对我来说,这是由于文件名过长,通过如下简单配置解决了它


git config --system core.longpaths true

【讨论】:

nice.. 我已编辑 C:\Program Files\Git\etc\gitconfig 并在 [core] 标签中插入了 longpaths = true。或者.. git config --global core.longpaths true 它对我有用。 tks【参考方案3】:

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

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

完成这两个步骤后,您应该可以看到项目文件了。

【讨论】:

对,忘记了。如果最终结帐会覆盖本地文件,则会失败。你可以git stage他们(暂时)。【参考方案4】:

尝试从 Visual Studio 2017 (v15.6.0) 克隆存储库时遇到相同的错误。

就我而言,在本地安装 GIT-LFS 解决了这个问题。

【讨论】:

这里也是这种情况...错误消息是...git-lfs filter-process: git-lfs: command not found fatal: the remote end hung up unexpectedly warning: Clone succeeded, but checkout failed. You can inspect what was checked out with 'git status' and retry with 'git restore --source=HEAD :/ ...安装 git-lfs 解决了问题【参考方案5】:

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

【讨论】:

这也是我的问题。 “文件名太长”+1 如果文件名太长:***.com/questions/22575662/… 我的问题是文件名也太长了。我不得不克隆下来并缩短名称。【参考方案6】:

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

欲了解更多信息,请观看 - https://github.com/msysgit/msysgit/issues/208

【讨论】:

这是我们的问题。以引号开头的文件名。在Linux机器上删除,就解决了。 我也遇到了同样的问题,在我的情况下,目录名称以 '.'(dot) 结尾,这在 Ubuntu/Mac 上运行良好,但在 Windows 上却不行......【参考方案7】:

在我的情况下,这是由于文件名中的 冒号。一旦我改变了它们,一切都很好。

【讨论】:

对我来说也一样,删除了冒号,没有更多问题了。 我认为我的问题是由文件末尾的空格引起的——但是当你不是 repo 的所有者时,你如何纠正它?错误:路径无效'hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/5_6_0/2837-search-with-not-modifier-on-multiple-codes.yaml'【参考方案8】:

我解决了这个问题。原来我的磁盘已满。你可以通过运行找出来

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

【讨论】:

【参考方案9】:

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

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

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

    使用git bash 打开项目目录并运行git reset,然后运行git checkout *

【讨论】:

工作!!。这个问题的原因是由于长路径。【参考方案10】:

这对我有用

git config --global core.longpaths true

【讨论】:

【参考方案11】:

发生这种情况是因为您的文件可能太大。 我尝试通过 GitHub Desktop 应用程序克隆存储库,它解决了我的问题。

【讨论】:

【参考方案12】:

我下载为 ZIP 文件并在我的 PC 中解压,它可以工作。

【讨论】:

以上是关于GitHub:克隆成功,但结帐失败的主要内容,如果未能解决你的问题,请参考以下文章

结帐时git内存不足

无法克隆私有存储库 github:身份验证失败

jenkins-github 克隆失败,没有 kex alg 错误

在项目的 Github 页面上工作

Github之克隆项目

我可以将 git 子模块与某种后备 URL 链接起来吗?如果 SSH 克隆失败,git 应该可以使用 https 进行克隆