如何在两个月内撤消本地存储库中所有有效的更改(新分支,提交等)? Reflog历史记录也需要清除。
答案 0 :(得分:0)
该问题将帮助您找到所需的提交:How do I view all commits for a specific day? 对于您的示例,此命令列出的第一个提交就是您想要的:
git log --until="2018-09-01"
然后,您可以使用@phd的建议并将沙箱重置为该提交的sha1:
git reset --hard <sha1>
警告:此重置命令还将您当前分支的HEAD移至该提交。这可能就是您想要的,但是您需要意识到这一点。
不幸的是,您必须一次为每个分支机构执行一次此操作,所以我意识到这不是您要寻找的全局解决方案。
至于引用日志,我研究了expire
的作用,它清除了较旧的引用。我看不到如何删除reflog中的最新行,因为这与reflog的意图相反。但是,引用日志存储在.git/logs/HEAD
中。从该文件中手动删除行是可行的,但是我找不到找到在特定日期之后的那些行的简便方法。如果您编辑此文件,请记住最新的条目位于结尾处,而不是像git reflog
所示的开头。