簡體   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