运行git gc
时,git会完成99%,然后锁定。我让它跑了一整夜,它始终没有完成,似乎也没有进展。一般来说,我必须硬复位机器才能恢复,因为所有东西都锁定了。由于机器完全没有响应,我无法获得top
或htop
的统计数据。
我决定暂时忽略那个问题。但是今天,当运行git pull
时,git决定自动打包存储库,这就触发了同样的错误。
这就是它卡住的地方:
Auto packing the repository for optimum performance. You may also
run "git gc" manually. See "git help gc" for more information.
Counting objects: 428464, done.
Delta compression using up to 4 threads.
Compressing objects: 99% (93702/93718)
这是一个在Fedora 17上的Qt 4.8 c++项目。我有8GB的RAM,持有项目的分区是33G,使用了27G(满88%)。
是什么导致了这个问题?如果机器缺少运行git gc
的资源,有没有办法告诉git不要自动打包?
https://help.github.com/articles/ignoring-files
如果你跳过所有生成的二进制文件和dll以及存储库中的繁重内容,那么优化应该不会有问题。
下面是禁用它的方法:
https://www.kernel.org/pub/software/scm/git/docs/git-gc.htmlgit config --global gc.auto 0
希望对你有帮助。
七年后,我在Debian上遇到了同样的问题。这种行为似乎有点不理想。
解决方法:即使桌面被锁定,我仍然可以进入虚拟控制台(Alt-Ctrl-F1
)并以root和pkill git
身份登录以解锁一切