[悲剧] 写了一礼拜的代码被删除了。。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zoombut
V2EX    程序员

[悲剧] 写了一礼拜的代码被删除了。。

  •  
  •   zoombut 2014-08-06 00:36:55 +08:00 8272 次点击
    这是一个创建于 4140 天前的主题,其中的信息可能已经有所发展或是发生改变。
    手贱。删除.pyc 文件。 rm -rf * *.pyc 没注意第一个'*' (git上只有一礼拜前的版本)
    74 条回复    2014-08-07 04:33:01 +08:00
    vicalloy
        1
    vicalloy  
       2014-08-06 00:42:36 +08:00
    一礼拜不提交,这是让大家膜拜的?
    akfish
        2
    akfish  
       2014-08-06 00:42:50 +08:00
    居然一个礼拜不commit。。。。。
    论随手commit的重要性。
    ejin
        3
    ejin  
       2014-08-06 00:45:21 +08:00

    markyangd
        4
    markyangd  
       2014-08-06 00:45:31 +08:00
    一个礼拜不提交,用git还何意义?
    vicalloy
        5
    vicalloy  
       2014-08-06 00:49:34 +08:00   5
    @livid 把 @ejin 处理下?
    ejin
        6
    ejin  
       2014-08-06 00:58:18 +08:00   7
    @vicalloy 这样的主题你让我回复什么好,一本正经的说你该定时同步备份数据,该用git,该用版本控制软件,该用xxx…… 人总是要吃亏的,吃亏了就学乖了。这些问题人家在失去数据那一刻的时候就明白了。

    每次都是死板回复的只有一种人,那就是机器人,不要让我去翻你的发言记录,任何人都不可能符合所有人的胃口,所以有block的功能,谢谢
    LINAICAI /td>
        7
    LINAICAI  
       2014-08-06 00:59:21 +08:00
    神人。。。一礼拜的
    LINAICAI
        8
    LINAICAI  
       2014-08-06 01:01:35 +08:00
    话说,对这个多长时间提交一次,还真的很好奇,个人开发的话,我习惯是下班前提交一次,但是如果是重要模块和功能,就多提交一次。
    librae
        9
    librae  
       2014-08-06 01:03:41 +08:00
    extundelete恢复。
    过来人飘过
    siteshen
        10
    siteshen  
       2014-08-06 01:50:45 +08:00   2
    rm *.pyc
    find . -name '*.pyc' | xargs rm # 好吧,这不严谨,不过习惯了难改。。。
    # # zsh大Fa好,弃bash保平安。
    # $ rm -rf *
    # zsh: sure you want to delete all the files in ./testcd [yn]?
    GhostFlying
        11
    GhostFlying  
       2014-08-06 02:19:17 +08:00 via iPad
    只能说nozuonodie,任何一个小feature都应该Commit。 对我自己而言,一天Commit 10多次都很正常。

    话说iPad上的Chrome点单楼回复没效果是啥情况。
    andrewpsy
        12
    andrewpsy  
       2014-08-06 02:21:32 +08:00
    @siteshen +1, 刚想建议把高风险的命令弄成alias加一层保险。
    CupTools
        13
    CupTools  
       2014-08-06 04:30:02 +08:00
    懒人需要这个: http://www.backblaze.com
    Livid
        14
    Livid  
    MOD
    PRO
       2014-08-06 04:32:38 +08:00
    把 Terminal 的字体调大一些吧。
    stevegy
        15
    stevegy  
       2014-08-06 06:09:46 +08:00
    应该养成ignore的好习惯
    kenzi
        16
    kenzi  
       2014-08-06 07:26:44 +08:00
    随时commit,然后下班前squash一次,然后push
    vietor
        17
    vietor  
       2014-08-06 07:48:14 +08:00
    形似:rm -fr / lib
    hanks315
        18
    hanks315  
       2014-08-06 08:12:04 +08:00 via iPhone   1
    之前写过一个rm别名,把删除文件移动到回收站,不过还没加批量处理的功能
    https://gist.github.com/hanks/48d4a5cbe5eb674ee914
    pepsin
        19
    pepsin  
       2014-08-06 08:13:32 +08:00
    删除一贯是用 Finder 来,安全保险许多
    Panic
        20
    Panic  
       2014-08-06 08:32:33 +08:00
    @vicalloy 同建议处理 @ejin, 我已经屏蔽掉。
    上班第一个帖子看这玩意真影响心情。
    thinkmore
        21
    thinkmore  
       2014-08-06 08:51:01 +08:00
    太冲动了
        22
    penjianfeng  
       2014-08-06 08:52:40 +08:00   1
    如果你是后悔,那么下面这个真实的故事你可以看看.
    当你不小心误删了数据时,请想一想日本哲学家中村元的事迹:他花费20年编纂了《佛教用语大辞典》,却被出版社把手稿弄丢了。于是他又花了8年时间重写了一遍。
    如果你是吐槽,没啥意义,自己删除的怪谁...
    penjianfeng
    jswxg
        23
    jswxg  
       2014-08-06 09:06:53 +08:00
    兄弟你这还算好的,我 rm -f -r / 后整个硬盘的数据都没了。。。
    nicodelee
        24
    nicodelee  
       2014-08-06 09:11:19 +08:00   1
    有类似的经历。建议:重写,每写完一个小功能/函数/模块,随手提交。
    记得要有耐心,别边写边“x,我真TM手贱”,不然又另外一个悲剧了。
    aliuwr
        25
    aliuwr  
       2014-08-06 09:17:42 +08:00   1
    @hanks315 可以安装一个叫 trash-cli 的包, Ubuntu 自带的源里就有.
    https://github.com/andreafrancia/trash-cli
    learnshare
        26
    learnshare  
       2014-08-06 09:27:51 +08:00
    Git 不提交,你拿它作甚?
    alvin2ye
        27
    alvin2ye  
       2014-08-06 09:31:30 +08:00   1
    重写质量会更好。
    tonghuashuai
        28
    tonghuashuai  
       2014-08-06 09:41:03 +08:00   1
    alias rm='mv --target-directory ~/.Trash'
    y10n
        29
    y10n  
       2014-08-06 09:45:50 +08:00   1
    楼主,把*.pyc加入到.gitignore就行了,不会再提交,你就不会手动去删了,悲剧就没有了。
    另外,一个功能需要写一礼拜的话,肯定不是深思熟虑,没有规划的,删掉了反而清静了,因为,你脑子想清楚了,一定会有神来之笔的。
    塞翁失马焉知非福,忘记保存、忘记提交、忘记中英文符号切换、忘记。。。这一切都是无用功的来源,出错先检查这些哦。
    dong3580
        30
    dong3580  
       2014-08-06 09:48:15 +08:00
    同样发生过,一礼拜的代码,还有数据库,直接del了,连渣都不剩。
    这件事教育我们要养成随手ctrl+s或者commit的习惯
    skybr
        31
    skybr  
       2014-08-06 09:54:38 +08:00
    alias python="python -B"
    yakiang
        32
    yakiang  
       2014-08-06 10:00:55 +08:00   1
    alias ls='ls --hide="*.pyc"'
    我一般是见到了就会想删所以现在眼不见心不烦,当然加入 .gitignore 是必须的
    jamesxu
        33
    jamesxu  
       2014-08-06 10:05:30 +08:00
    楼主先看看能不能把删除的东西恢复回来吧,以后记得多备份几份才是
    superbear
        34
    superbear  
       2014-08-06 10:05:32 +08:00
    论版本控制软件得使用以及即使提交得重要性,像@alvin2ye说的,说不定可以写得更好
    c742435
        35
    c742435  
       2014-08-06 10:08:16 +08:00
    上次硬盘坏掉,写了好久的代码丢失了
    不过重写之后比原来好很多!
    Wuvist
        36
    Wvist  
       2014-08-06 10:10:45 +08:00
    git多提交就不说了;一般我都是把源码放在dropbox目录,所以变动是实时多机多版本备份。

    曾经误操作直接rm整个目录,淡定的去dropbox网页上revert回旧版即可。
    XadillaX
        37
    XadillaX  
       2014-08-06 10:24:26 +08:00
    随时 commit 的习惯。
    TimLang
        38
    TimLang  
       2014-08-06 10:24:45 +08:00   1
    装个oh-my-zsh吧,rm都会提示的,出错几率会小很多,。
    582033
        39
    582033  
       2014-08-06 10:27:39 +08:00
    如果文件git add过,就算没有commit 我记得也是能找回的
    mengzhuo
        40
    mengzhuo  
       2014-08-06 10:29:17 +08:00
    git多提交,服务器数据应该有2处备份,这不应该是业界常识吗……
    loryyang
        41
    loryyang  
       2014-08-06 10:29:46 +08:00
    额,养成每天随手commit的习惯,git本来就是让你多次commit的,你不用,git也救不了你了。。。
    Twinkle
        42
    Twinkle  
       2014-08-06 10:30:27 +08:00
    真是惨...
    zooooom
        43
    zooooom  
       2014-08-06 10:38:11 +08:00
    论每日提交的重要性
    rrfeng
        44
    rrfeng  
       2014-08-06 10:41:15 +08:00
    @siteshen
    find -delete
    G2bN4dbX9J3ncp0r
        45
    G2bN4dbX9J3ncp0r  
       2014-08-06 10:52:36 +08:00
    吃一堑长一智
    555
        46
    555  
       2014-08-06 10:54:25 +08:00
    赶紧提交一下
    shiny
        47
    shiny  
    PRO
       2014-08-06 10:58:00 +08:00
    如果是 Mac 环境,开个 TimeMachine 在误删文件的时候还能找回。
    tokki
        48
    tokki  
       2014-08-06 11:01:49 +08:00
    写一行也要commite掉 本机的东西永远不靠谱的 比如硬盘有时候也会忽然坏掉
    zix
        49
    zix  
       2014-08-06 11:06:07 +08:00
    前段时间我也是 rm -rf 多加了一个星,然后把整个repo干掉了……

    还好距离上次提交时间较短,做的修改自己也还记得,于是滚回上一个版本了。

    所以,rm -rf 真的要慎重……
    zoombut
        50
    zoombut  
    OP
       2014-08-06 11:09:20 +08:00
    @TimLang zsh是提示了。手残了
    zoombut
        51
    zoombut  
    OP
       2014-08-06 11:11:35 +08:00
    @jamesxu rm 删除的似乎不能恢复
    xiaket
        52
    xiaket  
       2014-08-06 11:19:07 +08:00
    @ejin 请尽量让自己的回复能够对别人有帮助
    yxz00
        53
    yxz00  
       2014-08-06 11:26:10 +08:00
    这就是为什么我不喜欢命令行
    andrewpsy
        54
    andrewpsy  
       2014-08-06 11:28:40 +08:00 via iPad
    很多人说随时commit,两个问题
    1 不push出去有什么用,难道你们的commit直接联动push? 那amend改改的机会都没有了。
    2 写点东西就commit一下那repo里得多少垃圾信息啊

    我觉得隔个3-5小时rsync一下到Dropbox还算比较现实,你直接把repo建在Dropbox里那Dropbox自己的版本信息也得爆啊。
    zythum
        55
    zythum  
       2014-08-06 11:30:24 +08:00
    论随手commit的重要性。
    论没事tm备份的重要性。
    Wuvist
        56
    Wuvist  
       2014-08-06 11:39:23 +08:00
    @andrewpsy 一般开发都是在分支上,各独立分支有多commit,要不要push随意,反正是在独立分支,合并的时候只认merge commit,repo很清爽;我push前一般也会rebase/squash下。
    jk2r
        57
    jk2r  
       2014-08-06 11:43:39 +08:00
    之前也不小心删过。然后依靠万能的TimeMachine找回来了。10分钟前的代码
    shuangxi
        58
    shuangxi  
       2014-08-06 11:44:34 +08:00
    @penjianfeng 想知道哲学家靠什么吃饭过日子
    WhyLiam
        59
    WhyLiam  
       2014-08-06 14:37:05 +08:00
    我上周 `sudo rm -rf /User/用户名` 了,然后发现删的时间比平时久,果断 `Ctrl + C ` 了,至今还不知道我到底删了什么
    lalawue
        60
    lalawue  
       2014-08-06 15:02:46 +08:00 via iPhone
    如果觉得东西重要,就随手commit push,不过东西都是在失去后才知道重不重要
    coymail
        61
    coymail  
       2014-08-06 15:58:22 +08:00
    前几天手贱打了一条mv /* ../
    本来想打的是mv ./* ../
    orvice
        62
    orvice  
       2014-08-06 16:09:46 +08:00
    一个礼拜。。
    cpp255
        63
    cpp255  
       2014-08-06 17:14:11 +08:00
    吓死了,赶紧去 git add 下
    clippit
        64
    clippit  
       2014-08-06 17:25:55 +08:00
    试试 grep /dev/sda1 能不能恢复一些?
    yuankui
        65
    yuankui  
       2014-08-06 18:07:11 +08:00
    cat ~/.gitignoreglobal

    .*
    *.pyc
    railgun
        66
    railgun  
       2014-08-06 18:13:55 +08:00
    @coymail mv * ../ 不就行了?
    msg7086
        67
    msg7086  
       2014-08-06 19:16:42 +08:00
    @andrewpsy 可参考git-flow。如果实在觉得repo太乱,可以考虑在bitbucket/别的地方,开个私有副本,push往里扔,回头再squash到origin repo上去。
    coymail
        68
    coymail  
       2014-08-06 20:21:39 +08:00
    @railgun 确实,不过习惯性写./*
    banbanchs
        69
    banbanchs  
       2014-08-06 21:14:13 +08:00
    @andrewpsy rm -rf *是不会删掉隐藏文件的(就是以.开头的),也就是说.git文件夹还在,然后用git恢复就是了
    reusFork
        70
    reusFork  
       2014-08-06 21:15:24 +08:00
    bjhyyc
        71
    bjhyyc  
       2014-08-06 21:17:33 +08:00 via iPad
    rannnn
        72
    rannnn  
       2014-08-06 22:15:52 +08:00
    @zoombut 可以马上找回的嘛,只要不再写就好了
    rannnn
        73
    rannnn  
       2014-08-06 22:28:02 +08:00
    @WhyLiam Adoble的文件,因为都是A开头的。。。
    maple
        74
    maple  
       2014-08-07 04:33:01 +08:00
    我也就是一天,不过你一个礼拜未免有点太夸张了吧。存档在git还是很有用的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2815 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 03:10 PVG 11:10 LAX 19:10 JFK 22:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86