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:克隆成功,但结帐失败的主要内容,如果未能解决你的问题,请参考以下文章
jenkins-github 克隆失败,没有 kex alg 错误
我可以将 git 子模块与某种后备 URL 链接起来吗?如果 SSH 克隆失败,git 应该可以使用 https 进行克隆