我正在Git中试验相当激进的auto gc,主要用于打包.在我的回购中,如果我这样做,git config --list我已经设置好了
...
gc.auto=250
gc.autopacklimit=30
...
Run Code Online (Sandbox Code Playgroud)
如果git count-objects -v我得到了
count: 376
size: 1251
in-pack: 2776
packs: 1
size-pack: 2697
prune-packable: 0
garbage: 0
Run Code Online (Sandbox Code Playgroud)
但是git gc --auto没有改变这些数字,没有任何东西被打包!不应该松散的物体被包装,因为我是超过gc.auto限制的126个物体?
我一直在阅读git,我有一个非常特别的问题,我正在努力回答.
什么时候自动git gc执行?
我一直在听到各种论坛的葡萄藤,它默认发生在推送或取/拉 - 但我找不到任何验证这一点的来源.甚至文档本身也只是这个(强调我的):
一些 git命令可以自动运行git gc; 有关详细信息,请参阅下面的--auto标志
并且--auto标志指定
执行可能会创建许多松散对象的操作后,某些 git命令会运行git gc --auto.
我希望能够确定地说:
"在运行以下命令之一之前,git不会清除松散的树和blob文件:{mystery list here}.当运行其中一个命令时,如果松散对象的数量超过了值gc.auto,git将自动将对象压缩为packfile".
我正在运行一个冲突的冲击:
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: Better `SelectMotifsView.js`
Using index info to reconstruct a base tree...
M browser/AddLinkView.js
M browser/SelectMotifsView.js
M browser/index.html
Falling back to patching base and 3-way merge...
Auto-merging browser/index.html
CONFLICT (content): Merge conflict in browser/index.html
Failed to merge in the changes.
Patch failed at 0001 Better `SelectMotifsView.js`
The copy of the patch that failed is found in:
/Users/dmitry/dev/links/.git/rebase-apply/patch
When you have resolved this problem, run "git …Run Code Online (Sandbox Code Playgroud) 我想知道:Git什么时候进行垃圾收集?我知道在过去必须调用git gc手动启动垃圾收集,但现在它是自动完成的,何时?
另外,是否需要在最新的Git版本中手动调用它?