V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
wisej
V2EX  ›  git

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

  •  
  •   wisej · 2017-07-20 23:31:21 +08:00 · 3000 次点击
    这是一个创建于 2660 天前的主题,其中的信息可能已经有所发展或是发生改变。

    事情经过:

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

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

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

    7 条回复    2019-11-27 10:14:28 +08:00
    lzhr
        1
    lzhr  
       2017-07-21 00:11:34 +08:00
    git reflog
    wisej
        2
    wisej  
    OP
       2017-07-21 01:30:26 +08:00
    @lzhr 只是 git add 了,没有进行 commit。已经找到其他方法了,还是感谢
    yangg
        3
    yangg  
       2017-07-21 09:16:15 +08:00 via iPhone
    什么方法?
    Jakesoft
        4
    Jakesoft  
       2017-07-21 10:03:23 +08:00
    如果没有 local history 应该是没有什么方法了,git 没有这种操作
    wisej
        5
    wisej  
    OP
       2017-07-21 10:14:05 +08:00   ❤️ 2
    @yangg 先执行 git fsck --lost-found,会得到一串类似 commit-id 的东西,用 git show 查看可以发现就是丢失的文件内容。而这个内容就在 .git/lost-found/other 文件夹中。然后我就一个个用记事本打开复制粘贴回去的。如果你不仅 add 还 commit 了,好像可以更简单。
    具体可以参考: https://stackoverflow.com/a/9928789/7962085
    AyoCross
        6
    AyoCross  
       2017-07-21 13:43:47 +08:00
    @wisej 以前只知道 commit 之后看 history 的方法,今天又学习到了,没提交内容竟然也可以恢复
    jeffh
        7
    jeffh  
       2019-11-27 10:14:28 +08:00 via Android
    楼主--hard 用错了,不加--hard 默认就是--mixed,这样就不会有问题。不过学到了 git fsck 命令,学习了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2738 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:32 · PVG 22:32 · LAX 07:32 · JFK 10:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.