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

在线救急, git 本地仓库不小心全部删除了还能恢复吗?

  •  1
     
  •   eggt · 360 天前 · 3373 次点击
    这是一个创建于 360 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在仓库内不小心执行了rm -rm * 直接把本地所有数据都清空了,现在主要的问题是还能找回本地修改的代码吗?git ststus显示所有文件都是delete的,执行了git checkout -- . 命令只是把不带本地修改的代码仓恢复了,但是这个没啥用啊,没有找回本地修改,大佬们有啥办法恢复本地修改的代码吗?

    第 1 条附言  ·  360 天前
    感谢各位大佬,最终通过 vscode 的 local history 功能全部恢复了
    27 条回复    2023-11-09 13:25:03 +08:00
    rming
        1
    rming  
       360 天前
    无了
    Kuromis
        2
    Kuromis  
       360 天前
    听你描述的情况,是不可能恢复了
    gadfly3173
        3
    gadfly3173  
       360 天前 via Android
    没有 commit 的话恢复不了,可以看看代码编辑器里的历史记录里还有没有,比如 idea 能保存最近 30 次内的修改
    lechain
        4
    lechain  
       360 天前
    本地修改没有 add 就找不回来,连 add 都没 add 的文件,被删了找 git 也没有用,跟 git 都没扯上关系
    snitfk
        5
    snitfk  
       360 天前
    每天 commit 是个好习惯。
    eggt
        6
    eggt  
    OP
       360 天前
    @gadfly3173 vscode 有这个功能吗
    mt52
        7
    mt52  
       360 天前
    @eggt vscode 有个 TIMELINE, 保存文件历史版本你可以看下
    Imindzzz
        8
    Imindzzz  
       360 天前 via Android
    git reflog 试试
    Imindzzz
        9
    Imindzzz  
       360 天前 via Android
    先备份一下.git 目录吧
    shuxhan
        10
    shuxhan  
       360 天前
    关键在于.git 文件夹,如果能找回万事大吉,里面保存所有的操作记录,听你的描述够呛找回。
    eggt
        11
    eggt  
    OP
       360 天前
    @shuxhan 这个在啊,怎么利用它恢复啊
    sechi
        12
    sechi  
       360 天前
    如果已经 add 了可以试一下 reflog ,如果没 add 那就寄了
    eggt
        13
    eggt  
    OP
       360 天前
    @mt52 这个没用啊,只显示 git 的提交记录
    lzgshsj
        14
    lzgshsj  
       360 天前   ❤️ 1
    vscode 的话,有个时间线,可以本地历史记录的。
    nutting
        15
    nutting  
       360 天前
    ide 自带的历史记录里找找
    Yuhyeong
        16
    Yuhyeong  
       360 天前
    .git 文件夹还在吗,不在直接没了。在的话按道理说正常的 check 操作就能复原。用 rm -rf *,基本不可能恢复了。
    段子成为现实
    mcluyu
        17
    mcluyu  
       360 天前
    经常 commit , 经常 push , 一天好几回那种, 习惯养成, 收益良多,删了损失无非就是几小时的工作
    shuxhan
        18
    shuxhan  
       360 天前
    @eggt #11 看错了,你最新的好像没有提交 commit 吧
    eggt
        19
    eggt  
    OP
       360 天前
    @lzgshsj 没了啊,它加载变成了新文件😭
    eggt
        20
    eggt  
    OP
       360 天前
    @lzgshsj 在时间线右上角三个点上点击了一下。发现了新大陆啊,找到本地历史记录了,太好了,非常感谢😂,我挨个恢复一下。
    Aboceder
        21
    Aboceder  
       360 天前
    idea 有个本地历史记录,跟 git 无关的,我之前误操作还原了修改的代码,就是在这里找回的
    impanghu
        22
    impanghu  
       360 天前
    如果是 idea 的话,有本地历史记录可以找找
    QHKZ
        23
    QHKZ  
       360 天前 via iPhone
    git reflog
    shiroyuri
        24
    shiroyuri  
       360 天前
    有 add 过的可以通过 reflog ,没有的话就用 IDE 的编辑历史,如果都没有那就放弃吧
    SimonOne
        25
    SimonOne  
       359 天前
    以为自己时间线跳动了,一查确实看到过很多次类似的主题,哈哈哈
    https://www.v2ex.com/t/941333
    https://www.v2ex.com/t/899029
    DefoliationM
        26
    DefoliationM  
       359 天前 via Android
    建议 alias rm=trash-put ,防止误删除
    julyclyde
        27
    julyclyde  
       359 天前
    @DefoliationM 这样会养成依赖心理,会肆无忌惮的删除
    until 遇到一个真正的 rm
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2728 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:25 · PVG 20:25 · LAX 05:25 · JFK 08:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.