[英]Git reflog expiration time
我知道删除了超过90天的 reflog条目。 我没有对git配置做任何改变。 今天当我做git reflog master --date=local
,我可以看到10个月前的条目。 这怎么可能?我应该只看到可追溯到3个月前的参赛作品?
如果你git gc
用它,Git会定期自动运行git gc
。 但是这个自动GC的时间段并没有在任何地方定义,事实上,它根本不是基于时间的。 相反,它基于git gc --auto
对存储库状态的快速调查。 此外,它实际上是通过运行其他Git命令开始的,它只是在工作结束时运行git gc --auto
。 那个git gc --auto
然后决定是否运行git gc
,如果是的话, git gc
运行git reflog expire
90天。
在这种情况下,也许你没有运行git命令运行git gc --auto
,或者git gc --auto
选择不执行任何操作,持续10个月。 这似乎有点过分, 1所以你更有可能通过将gc.auto
设置为0
来禁用自动GC。 你也可能遇到了一个有趣的错误:看看VonC对下面的“另见”问题的回答,这个问题解决了一个让人咬人的错误。
另请参阅导致git gc --auto的所有命令的列表 , 了解git gc --auto ,以及您应该多久使用一次git-gc?
1这有多大取决于存储库的活动程度。 一个相当安静的回购可能不会累积足够的松散物体来制作git gc --auto
做了好几个月的事情; 一个忙碌的人会经常需要自动gc。
怎么可能?
非常简单的解释 - 如果你不经常运行git reflog expire
或git gc
,这是可能的。 如果您这样做并且他们仍在那里,请修改您的问题。 不,就是这样。
输入git gc
并看到它们消失。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.