问题描述:

将一个开发好的feature branch merge到master branch的时候,发现代码有一些旧了,就做了一次rebase。结果冲突很多项目太多,将默认可以skip的commit都skip了(图形化git工具)。解决一堆冲突以后,发现自己提交的部分commit不见了。

解决方案:

  1. 在命令行输入​git reflog​,会出现丢失的commit信息列
  2. 找到自己需要的commit行, ​git checkout -b recovery ae63e8d
  3. ​git checkout master​​​​git merge recovery​​ 切回主分支

反思:

  1. 慎用​​git rebase -skip​
  2. commit的时候认真记录。 一个feature branch 在测试的以后发现问题,或者加强的时候,每次提交都fix bug, enhance balabala... 导致在寻找commit的时候花了好半天
  3. git 上提交过的东西一般都会留下痕迹,发生误操作淡定!
  4. 这个操作也适合找回误删了本地commit过但是未push到远程的branch

参考资料

​https://www.jianshu.com/p/fb1a4e414686​