【问题标题】:Git no space left on deviceGit 设备上没有剩余空间
【发布时间】:2012-12-29 05:34:00
【问题描述】:

我做了 git pull --rebase 并收到以下错误:

 error: file write error (No space left on device)
 fatal: unable to write sha1 file 
 fatal: unpack-objects failed

我的设备上有很多空间。不知道为什么会显示这个错误。

我第一次遇到这个错误。

【问题讨论】:

标签: git git-rebase git-pull


【解决方案1】:

您的驱动器空间不足。从您机器上的任何位置删除一些未使用文件。在你完成一些大扫除之后,你可能会考虑运行 git gc 让 git 垃圾收集你的存储库;如果你最近对 git 的对象进行了很多更改——就像 rebase 可能发生的那样——你可以从 git 本身回收重要数据。在给 git 一些喘息的空间之后(因为 gc 需要一点回旋余地来将数据复制到新文件中),git gc 将尽可能压缩您的 git 存储库,而不会丢失存储库的历史记录。

【讨论】:

  • 你的意思是来自 /tmp 的文件或来自 git 的文件
  • 任何地方,真的:你的整个驱动器都塞满了。从 /tmp 清除下载,无论需要什么。赶走那些蜘蛛网。
  • 哈哈哈!!! rm -rf /tmp/*rm -rf /var/log/*cd / && 查找。 -类型 f ! -name '.gz' -exec gzip "{}" \;*.或者,购买更大容量的硬盘。
  • 我的设备上有很多空间。我不知道为什么会这样:(
  • @checkit:检查所有文件系统上是否有可用空间,包括/tmpdf -h 可能会派上用场。
【解决方案2】:

这与其说是一个答案,不如说是对问题的澄清以及问题的实际可能是什么。当我的 Windows 8.1 系统和驱动器上有足够的空间时,我发现 GIT 会定期吐出这种类型的错误代码。

运行 5 次并在任务管理器中检查内存后,我发现每次系统内存接近最大限制时都会触发此错误。它与可用磁盘空间无关,因此虽然@Matt 的回答在某些情况下可能是正确的,但并非对所有情况都正确。

任务管理器报告 GIT 使用的内存比例较低,但每次 GIT 运行时,它都会增加使用的内存。此问题似乎与 GIT 中的内存泄漏有关。

【讨论】:

    【解决方案3】:

    我在推送到远程时也遇到了类似的错误,实际上不是因为我的本地机器上没有足够的空间,而是在 Git 服务器上。

    只需检查完整的错误,例如我得到:

    Failed to write to log, write /var/log/gitlab/gitlab-shell/gitlab-shell.log: no space left on device
    

    通知我错误来自gitlab-shell,而不是git

    【讨论】:

    • 同样,我和我的同事都看到了这个错误,它似乎与我们的本地磁盘空间无关。我们怀疑这是 GitLab 服务器的问题,现在正在调查。
    【解决方案4】:

    添加到the other answer 声明:

    每次 GIT 运行时,它都会增加使用的内存。此问题似乎与 GIT 中的内存泄漏有关。

    Git 2.20(2018 年第四季度)专注于压制 Git 中已知的最后一次内存泄漏案例,在 ref-filter 代码路径中堵塞少量内存泄漏。

    参见Olga Telezhnaya (telezhnaya)commit f0062d3commit deec6b8commit 23941dd(2018 年 10 月 18 日)。
    (由 Junio C Hamano -- gitster -- 合并到 commit 9d00100,2018 年 10 月 30 日)


    Git 2.24(2019 年第 4 季度)更正了“for-each-ref”(以及显示 refs 的朋友没有保护自己免受古老标签的侵害)在被要求时未记录标注名称 显示“%(taggername)”,。

    参见Mischa POSLAWSKY (shiar)commit 8b3f33e(2019 年 8 月 17 日)。
    (由 Junio C Hamano -- gitster -- 合并于 commit a477abe,2019 年 9 月 9 日)

    ref-filter:初始化空名称或电子邮件字段

    在 Git 中的 v0.99 等无标题标签上格式化 $(taggername) 会导致 SIGABRT 出现错误“munmap_chunk():无效指针”,因为提交 f0062d3ref-filter:免费项目- >value 和 item->value->s,2018-10-19,Git v2.20.0-rc0)。

    【讨论】:

      【解决方案5】:

      在我的情况下,.gitconfig 被存储在网络位置,它基本上保留了我机器的所有配置文件,因此,如果 PC 死机,公司可以在新硬件上恢复相同的配置。无论如何,这个网络驱动器空间不足,所以 git 无法更新文件。 您可以增加网络驱动器空间,或者只是断开它,git 将使用主驱动器上的本地配置。

      【讨论】:

        【解决方案6】:

        我使用 Git bash 控制台遇到了这个问题。通过在没有更多问题的地方使用 Windows 控制台。我可以克隆存储库。

        【讨论】:

          【解决方案7】:

          我通过在我的办公桌上做空间解决了我在 mac 中的问题,如果你的办公桌已满,它会给出这样的错误。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-01-14
            • 2012-05-15
            • 2018-11-22
            • 2015-07-21
            • 2020-12-16
            • 2014-11-20
            • 2018-12-27
            相关资源
            最近更新 更多