如何清理Git reflog中的reset操作记录?
可以清理Git reflog记录,无需重新克隆仓库
你完全不用重新克隆远程仓库,Git提供了直接清理reflog的方法,所有操作都是本地执行,不会影响远程仓库状态。
手动清理reflog的步骤:
第一步,立即标记所有reflog条目为过期并移除:
git reflog expire --expire=now --all若只想清理HEAD的reflog记录(而非所有分支),可将
--all替换为HEAD。第二步,执行垃圾回收彻底清理无引用的对象:
git gc --prune=now这一步会把从reflog中移除、且无任何分支/标签引用的提交对象彻底删除,释放本地仓库存储空间。
补充说明:
- Git默认会自动清理reflog:默认情况下,Git会在30天后清理reflog中超过90天的旧条目,不急的话可以等待自动过期。
- reflog是本地专属日志:远程仓库不会存储你的本地reflog记录,清理操作完全不会影响远程代码。
你的当前reflog记录如下:
# git reflog 3d4b95d (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: reset: moving to HEAD@{10} 99f4098 HEAD@{1}: reset: moving to HEAD@{8} 056304e HEAD@{2}: reset: moving to HEAD@{13} 47b6082 HEAD@{3}: reset: moving to HEAD@{11} 2ab9b26 HEAD@{4}: reset: moving to HEAD@{18} b6228bd HEAD@{5}: reset: moving to HEAD@{20} 93fd78c HEAD@{6}: reset: moving to HEAD@{6} 99f4098 HEAD@{7}: reset: moving to HEAD@{1} 99f4098 HEAD@{8}: reset: moving to HEAD@{1} 99f4098 HEAD@{9}: reset: moving to 99f4098c136787ffb11c5524a334dd999cd805e9 99f4098 HEAD@{10}: reset: moving to 99f4098c136787ffb11c5524a334dd999cd805e9 3d4b95d (HEAD -> master, origin/master, origin/HEAD) HEAD@{11}: commit: bootstrap off for now a53358d HEAD@{12}: reset: moving to HEAD~ 93fd78c HEAD@{13}: commit: bootstrap off for now
内容的提问来源于stack exchange,提问作者Nux
相关产品推荐
相关产品推荐

