git 误操作,还能恢复文件内容么?

2017-07-20 23:31:21 +08:00
 wisej

事情经过:

1.因为有很多文件要 git add。然后图方便直接使用的 git add ./,于是引入了一些不想要的隐藏文件夹。

2.然后就想撤销上一次操作,因为对 git 不是很熟,直接用的 git reset --hard commit_id 这种方式。然后我就懵逼了,git add 添加的内容全没了 - 。-

想问问大家还能有啥办法恢复么?

3046 次点击
所在节点    git
7 条回复
lzhr
2017-07-21 00:11:34 +08:00
git reflog
wisej
2017-07-21 01:30:26 +08:00
@lzhr 只是 git add 了,没有进行 commit。已经找到其他方法了,还是感谢
yangg
2017-07-21 09:16:15 +08:00
什么方法?
Jakesoft
2017-07-21 10:03:23 +08:00
如果没有 local history 应该是没有什么方法了,git 没有这种操作
wisej
2017-07-21 10:14:05 +08:00
@yangg 先执行 git fsck --lost-found,会得到一串类似 commit-id 的东西,用 git show 查看可以发现就是丢失的文件内容。而这个内容就在 .git/lost-found/other 文件夹中。然后我就一个个用记事本打开复制粘贴回去的。如果你不仅 add 还 commit 了,好像可以更简单。
具体可以参考: https://stackoverflow.com/a/9928789/7962085
AyoCross
2017-07-21 13:43:47 +08:00
@wisej 以前只知道 commit 之后看 history 的方法,今天又学习到了,没提交内容竟然也可以恢复
jeffh
2019-11-27 10:14:28 +08:00
楼主--hard 用错了,不加--hard 默认就是--mixed,这样就不会有问题。不过学到了 git fsck 命令,学习了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/376841

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX