我怎样才能在Git远程仓库上触发垃圾收集?

正如我们所知,我们可以定期运行git gc来打包.git/objects下的.git/objects

然而,在远程中央Git存储库(裸露或不存在)的情况下,在多次推送后, myproj.git/objects下有许多文件; 每个提交似乎都会在那里创建一个新文件。

我如何打包许多文件? (我的意思是远程中央裸仓库中的仓库,而不是本地克隆仓库。)


提交后,远程回购应配置为根据需要运行gc。 在git-gc和git-config手册页中查看gc.auto的文档。

不过,远程仓库不需要太多的垃圾收集,因为它很少会有悬而未决(无法访问)的提交。 这些通常来自分支删除和重新分配等事情,这通常只发生在本地回购中。

所以gc需要更多的重新包装,这是为了节省存储空间而不是去除实际的垃圾。 gc.auto变量足以处理这个问题。


虽然您应该有一些定期自动处理此问题的流程,但运行并不成问题

git gc

在裸仓库

git@domU:/pix/git/repositories/abd.git$ ls -l

total 28
drwxrwxr-x   2 git git    6 2010-06-06 02:44 branches
-rw-rw-r--   1 git git   66 2010-06-06 02:44 config
-rw-r--r--   1 git git   23 2011-03-15 18:19 description
-rw-rw-r--   1 git git   23 2010-06-06 02:44 HEAD
drwxrwxr-x   2 git git 4096 2010-06-06 02:44 hooks
drwxrwxr-x   2 git git   20 2010-06-06 02:44 info
drwxrwxr-x 260 git git 8192 2010-09-01 00:26 objects
drwxrwxr-x   4 git git   29 2010-06-06 02:44 refs

$ git gc
Counting objects: 3833, done.
Compressing objects:  31% (1085/3500)...

这个问题应该说明你应该多长时间运行一次垃圾回收。

最简单的选择是在Windows中使用计划任务或在Unix中使用cron作业来定期运行git gc 。 这样你甚至不需要考虑它。

链接地址: http://www.djcxy.com/p/8639.html

上一篇: How can I trigger garbage collection on a Git remote repository?

下一篇: Git: How to ignore fast forward and revert origin [branch] to earlier commit?