运行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不要自动打包?
答案 0 :(得分:6)
https://help.github.com/articles/ignoring-files
如果你跳过所有生成的二进制文件以及存储库中的dll和重物,那么它应该没有优化问题。
以下是禁用它的方法:
https://www.kernel.org/pub/software/scm/git/docs/git-gc.html
git config --global gc.auto 0
希望有所帮助。
答案 1 :(得分:1)
七年后,我在 Debian 上遇到了同样的问题。这种行为似乎有点次优。
解决方法:即使桌面被锁定,我仍然可以进入虚拟控制台 (Alt-Ctrl-F1
) 并以 root 和 pkill git
身份登录以解锁所有内容。