• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zoombut
V2EX  ›  程序员

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

  •  
  •   zoombut · Aug 6, 2014 · 9072 views
    This topic created in 4479 days ago, the information mentioned may be changed or developed.
    手贱。删除.pyc 文件。 rm -rf * *.pyc 没注意第一个'*' (git上只有一礼拜前的版本)
    74 replies  •  2014-08-07 04:33:01 +08:00
    vicalloy
    vicalloy
    Aug 6, 2014
    1
    一礼拜不提交,这是让大家膜拜的?
    akfish
    akfish
    Aug 6, 2014
    2
    居然一个礼拜不commit。。。。。
    论随手commit的重要性。
    ejin
    ejin
    Aug 6, 2014
    3

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

    每次都是死板回复的只有一种人,那就是机器人,不要让我去翻你的发言记录,任何人都不可能符合所有人的胃口,所以有block的功能,谢谢
    LINAICAI
    LINAICAI
    Aug 6, 2014
    7
    神人。。。一礼拜的
    LINAICAI
    LINAICAI
    Aug 6, 2014
    8
    话说,对这个多长时间提交一次,还真的很好奇,个人开发的话,我习惯是下班前提交一次,但是如果是重要模块和功能,就多提交一次。
    librae
    librae
    Aug 6, 2014
    9
    extundelete恢复。
    过来人飘过
    siteshen
    siteshen
    Aug 6, 2014❤️2
    10
    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
    GhostFlying
    Aug 6, 2014 via iPad
    11
    只能说nozuonodie,任何一个小feature都应该Commit。 对我自己而言,一天Commit 10多次都很正常。

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

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

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

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

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

    .*
    *.pyc
    railgun
    railgun
    Aug 6, 2014
    66
    @coymail mv * ../ 不就行了?
    msg7086
    msg7086
    Aug 6, 2014
    67
    @andrewpsy 可参考git-flow。如果实在觉得repo太乱,可以考虑在bitbucket/别的地方,开个私有副本,push往里扔,回头再squash到origin repo上去。
    coymail
    coymail
    Aug 6, 2014
    68
    @railgun 确实,不过习惯性写./*
    banbanchs
    banbanchs
    Aug 6, 2014
    69
    @andrewpsy rm -rf *是不会删掉隐藏文件的(就是以.开头的),也就是说.git文件夹还在,然后用git恢复就是了
    reusFork
    reusFork
    Aug 6, 2014
    70
    bjhyyc
    bjhyyc
    Aug 6, 2014 via iPad
    71
    赞
    rannnn
    rannnn
    Aug 6, 2014
    72
    @zoombut 可以马上找回的嘛,只要不再写就好了
    rannnn
    rannnn
    Aug 6, 2014
    73
    @WhyLiam Adoble的文件,因为都是A开头的。。。
    maple
    maple
    Aug 7, 2014
    74
    我也就是一天,不过你一个礼拜未免有点太夸张了吧。存档在git还是很有用的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2782 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 117ms · UTC 05:15 · PVG 13:15 · LAX 21:15 · JFK 00:15
    ♥ Do have faith in what you're doing.