git
› Pro Git
› Atlassian Git Tutorial
› Pro Git 简体中文翻译
› GitX
wisej
V2EX  ›  git

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

  •  
  •   wisej · Jul 20, 2017 · 4040 views
    This topic created in 3399 days ago, the information mentioned may be changed or developed.

    事情经过:

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

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

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

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