繁体   English   中英

Git reflog到期时间

[英]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 expiregit gc ,这是可能的。 如果您这样做并且他们仍在那里,请修改您的问题。 不,就是这样。

输入git gc并看到它们消失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM