我做了 git pull --rebase ,我收到了以下错误:
error: file write error (No space left on device)
fatal: unable to write sha1 file
fatal: unpack-objects failed
我的设备上有很多空间。不知道为什么会出现这个错误。我第一次遇到这个错误。有没有人面对这个问题??
谢谢。
答案 0 :(得分:11)
你已经没有开车了。从计算机上的任何位置删除一些未使用的文件。在你做了一些清理之后,你可能会考虑运行git gc
让git垃圾收集你的存储库;如果你最近对git的对象做了很多改变 - 比如可以用rebase发生 - 你可以从git本身回收重要的数据。给git一些喘息的空间(因为gc需要一点摆动空间来将数据复制到新文件中),git gc
将尽可能地压缩你的git存储库,而不会丢失你的存储库的历史记录。
答案 1 :(得分:3)
这不仅仅是对问题的澄清以及问题实际可能是什么的答案。当我在Windows 8.1系统和驱动器上有足够的空间时,我发现GIT会定期吐出这种类型的错误代码。
在任务管理器中运行5次并检查内存后,我发现每次系统内存接近最大限制时都会触发此错误。它与可用的磁盘空间无关,所以虽然@ Matt的答案在某些情况下可能是正确的,但对所有情况都不正确。
任务管理器报告GIT使用的内存比例很低,但每次GIT运行时,它都会增加使用的内存。此问题似乎与GIT中的内存泄漏有关。
答案 2 :(得分:0)
要添加到the other answer中,说明:
每次GIT运行时,它都会增加所使用的内存。该问题似乎与GIT中的内存泄漏有关。
Git 2.20(Q4 2018)专注于压缩Git中已知的最新内存泄漏案例,将少量内存泄漏插入ref过滤器代码路径中。
请参见commit f0062d3的commit deec6b8,commit 23941dd,Olga Telezhnaya (telezhnaya
)(2018年10月18日)。
(由Junio C Hamano -- gitster
--在commit 9d00100中合并,2018年10月30日)
答案 3 :(得分:0)
在我的情况下,.gitconfig存储在网络位置上,该位置实际上保留了我的计算机的所有配置文件,因此,如果PC死了,公司可以在新硬件上恢复相同的配置。无论如何,此网络驱动器空间不足,因此git无法更新文件。 您可以增加网络驱动器的空间,或者只是断开它的连接,然后git将使用主驱动器上的本地配置。
答案 4 :(得分:0)
我使用Git bash控制台遇到了这个问题。通过使用Windows控制台,那里不再有问题。我可以克隆存储库。
答案 5 :(得分:0)
当推送到远程设备时,我也遇到了类似的错误,实际上这不是由于本地计算机上没有足够的空间,而是由于Git服务器上的空间。
只需检查完整错误,例如我得到了:
Failed to write to log, write /var/log/gitlab/gitlab-shell/gitlab-shell.log: no space left on device
通知我错误来自gitlab-shell
,而不是git
。
答案 6 :(得分:-2)
我通过在办公桌上腾出空间解决了Mac中的问题,如果您的办公桌已满,则会出现这样的错误。