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

大佬们,新文件 git add 之后不小心 git rm -f 了

  •  
  •   l0ng · 2018-09-14 12:23:57 +08:00 · 2307 次点击
    这是一个创建于 2287 天前的主题,其中的信息可能已经有所发展或是发生改变。

    还能拯救吗😭

    8 条回复    2018-09-14 13:17:45 +08:00
    pexcn
        1
    pexcn  
       2018-09-14 13:00:47 +08:00 via iPhone   ❤️ 1
    如果不是删除了 .git 目录,试试 git checkout -- <file_name>
    pexcn
        2
    pexcn  
       2018-09-14 13:02:38 +08:00 via iPhone   ❤️ 1
    看错了,先 git reset HEAD <file_name>
    shalk
        3
    shalk  
       2018-09-14 13:05:26 +08:00 via iPhone   ❤️ 1
    不能了 你没有 commit,rm 已经把 staging 的也删除了,-f 在文件系统上也删除了。

    没多少行就自己写一下
    jasonyang9
        4
    jasonyang9  
       2018-09-14 13:11:50 +08:00   ❤️ 1
    可以的吧,add 就已经生成 git object 了
    jasonyang9
        5
    jasonyang9  
       2018-09-14 13:13:11 +08:00   ❤️ 1
    commit 一次,然后 checkout file.ext
    jasonyang9
        6
    jasonyang9  
       2018-09-14 13:14:30 +08:00
    看错了,`git rm -f`,猝
    l0ng
        7
    l0ng  
    OP
       2018-09-14 13:17:22 +08:00   ❤️ 3
    没有提交 commit

    用 git fsck --lost-found 找回来了,谢谢楼上各位热心大佬

    结贴
    lululau
        8
    lululau  
       2018-09-14 13:17:45 +08:00   ❤️ 1
    In zsh: print -l .git/object/**/*(.om)

    假设输出为:

    .git/objects/cc/628ccd10742baea8241c5924df992b5c019f71
    .git/objects/12/72fb4bd180e5c6c681f8d76a1c36e797e2bf9e
    .git/objects/aa/a96ced2d9a1c8e72c56b253a0e2fe78393feb7
    .git/objects/ce/013625030ba8dba906f756967f9e9ca394464a
    ........
    .......

    看看开头的几行是不是你删掉的文件:

    git cat-file -p cc628c
    git cat-file -p 1272fb
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3236 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:22 · PVG 20:22 · LAX 04:22 · JFK 07:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.