关于git reset的风险

2013-11-22 12:00编辑本页

在使用git pull origin master更新代码的时候有时会遇到有冲突无法合并的情况,而又知道在remote端的代码是对的,只要覆盖掉本地的代码就好了。

之前我是这样做的:

1
2
git fetch --all
git reset --hard origin/master

然后也会得到一个我想要的结果。

可是今天当我重复同样的操作时,事故却发生了。很多有用的数据在这个操作之后被删除,而且无法找回了。

我的Git环境是这样的:

这是一个在线上运行的系统,会在同目录下实时生成很多历史数据,然而由于其数据量较大,就没有加到git追踪文件里。但是又没有写好.gitignore文件。又由于是多人维护的项目,不知什么时候被人执行过一句git add --all

就这样。。。珍贵的历史数据在一个不可撤消的git reset --hard操作之后被删除了。

数据最后也没有找回来。。。1

所以在git管理项目时要注意几点:

  1. 慎用git reset --hard
  2. 写好.gitignore文件
  3. 线上的数据要做备份
  4. 不要添加不追踪的文件

批注为 2018-10-10 添加


  1. 这是因为我操作失误导致的一个迄今为止最大的线上故障,丢了运营的历史数据。到现在我还是对此引以为戒。 ↩︎

除另有声明外 本博客文章均采用 知识共享(Creative Commons) 署名 4.0 国际许可协议 进行许可 转载请注明原作者与文章出处


标签: archive

点击加载Disqus评论
Creative Commons © 2013 — 2023 xiaocang | Theme based on fzheng.me & NexT | Hosted by Netlify