Git Gui:永远得到“这个仓库目前大约有 320 个松散的对象”。

Git Gui: Perpetually getting "This repository currently has approximately 320 loose objects."

提问人:sashoalm 提问时间:1/30/2014 更新时间:11/14/2019 访问量:31197

问:

每次我在特定项目上启动 Git Gui 时,我都会收到以下消息:

此存储库当前大约有 320 个松散对象。

enter image description here

然后,我继续单击“是”,并显示以下对话框:

enter image description here

问题是,当我再次打开 Git Gui 时,我收到完全相同的消息,同样是大约 320 个松散的对象!就好像单击“是”根本没有效果一样。

git git-gui

评论

1赞 CB Bailey 1/30/2014
你能发布输出吗?git count-objects -v
0赞 TheCodeArtist 1/30/2014
运行“git gui”时如何跳过“松散对象”弹出窗口的可能重复
5赞 sashoalm 1/30/2014
@TheCodeArtist 谢谢,我在那里找到了答案。根据此评论,从命令行显式运行对我有用。git gc
0赞 0 _ 5/13/2021
相关,当在压缩对象数据库时甚至存在取消链接错误时:stackoverflow.com/q/11774397/1959808

答:

109赞 Greg Burghardt 1/30/2014 #1

只是简单地跳过弹出窗口,正如运行“git gui”时如何跳过“松散对象”弹出窗口所建议的那样,在接受的答案中忽略了 Git 正在向您传达可能的性能问题这一事实。这应该可以通过从命令行运行以下命令来修复:

cd path/to/your/git/repo
git gc --aggressive

从输出:git help gc

在当前存储库中运行许多内务处理任务,例如压缩文件修订(以减少磁盘空间并提高性能)和删除可能无法访问的对象,这些对象可能是从先前的 git add 调用中创建的。

建议用户在每个存储库中定期运行此任务,以保持良好的磁盘空间利用率和良好的操作性能。

--积极

通常 git gc 运行速度非常快,同时提供良好的磁盘空间利用率和性能。此选项将导致 git gc 更积极地优化存储库,但代价是花费更多时间。这种优化的效果是持久的,所以这个选项只需要偶尔使用;每隔几百个变更集左右。

这应该可以防止提示在一段时间内弹出。

评论

27赞 sashoalm 1/30/2014
奇怪的是,简单地从命令行运行就为我解决了这个问题。可能运行类似:)git gcgit guigit gc --extra-unaggressive
2赞 sashoalm 1/31/2014
似乎 git gui 调用"C:\Program Files\Git\bin\sh.exe" "C:/Program Files/Git/libexec/git-core/git-repack" -a -d -l
42赞 Mahn 2/24/2015
git prune似乎在不修复它时修复了它。git gc
3赞 Jeff Clites 7/9/2015
你通常不想和 ;这会导致重新计算增量,这通常是非生产性且非常耗时的;看到这个帖子 - 该页面具有误导性。在这种情况下,可能只是简单就足够了。--aggressivegitmangit gc
18赞 daw 10/15/2016
不得不用来摆脱消息。无论是在命令行上还是在选项上,也没有做伎俩。--prune=allgit gc--aggressive--prune
11赞 AdvenC 11/14/2019 #2

我使用命令:

git gc --prune=现在

完成后不再有太多松散的物体警告。

参考来源:https://git-scm.com/docs/git-gc

评论

4赞 saeraphin 10/7/2020
不得不说,这是对我有用的解决方案。奇怪的是,没有删除警告(单击UI也没有,它似乎执行了一个简单的)。git gc --aggressivegit gc