git checkout -- . 可以反悔吗

不慎在错误的目录执行了git checkout -- .,导致最近的更改都被恢复成commit时的状态。
是否有命令可以找回丢失的更改呢?

阅读 32.9k
3 个回答

被添加到 index 的内容可以找回(但是只有文件内容,没有文件名信息,需要人工辨别),没有被添加的部分已经被删除了,你只能求助于另外的办法(备份文件、反删除恢复等)。

据我说知,如果没有stage那些更改,你就不能恢复了。

如果stage(add)过,还可能可以恢复(前提是不能运行git gc): 使用 git fsck --lost-found 找到 dangling blob,然后使用 git show <sha_id> 看看这个文件是不是你之前被恢复的。

git reset --hard HEAD~1 就可以恢复了

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