git reflog恢复

git本地仓库是否只要commit过的内容,不管之后经过多少次rebase,rest --hard等操作,都可以通过reflog恢复?

阅读 4.8k
2 个回答

并不是,因为 reflog 数据保存在 .git/logs/ 目录下,当该目录没有内容时无法进行 git reflog 操作。
那么只要保证这个不清空这个目录就能随便进行危险操作?
依旧不行,因为 git 会不定时的自动运行 gc,而 git 的 gc 任务会将不被任何 commit 引用并且已存在一段时间 (数月) 的对象删除。

不要想着能恢复,就随便做一些危险操作,万一哪天真没法恢复了,就悲剧了,要清楚工具的最佳效用是靠人去发挥的,最重要的还是保持协作流程规范。
请参考:Git使用规范流程

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题