git gc和git pull锁定机器并且永远不会完成

时间:2013-05-22 19:03:10

标签: git git-pull git-gc

运行git gc时,git最多可达99%,然后锁定。我让它整夜运行,它从未完成,似乎没有进展。通常我必须硬重置机器才能恢复,因为一切都会锁定。由于机器完全没有响应,我无法获得tophtop统计信息。

我决定暂时忽略这个问题。然而今天,当运行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不要自动打包?

2 个答案:

答案 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 身份登录以解锁所有内容。