目录
目录
1.事情起因
- 今天有个同事误操作删库了,Git仓库的所有远程分支都被删掉了,吓得我赶紧学习一下怎么删库,哦不,恢复……
2.恢复方法
恢复的方法其实很简单,大家不要着急,基本上30分钟以内重要开发线使用的Git 分支都能恢复完成。
- 首先找一台 git clone过repo的同事的机器(可能是某个懒惰的同事经常不操作仓库,也可能是打包机最近凑巧不打版本),上面一定有本地仓库,注意不要做pull或fetch操作了!否则这台机器的本地仓库就会被刷成删除所有远程分支的状态了!
- 先输入git branch -a列出本地仓库内所有的分支,记录在txt文本中。
- 然后按照txt中的分支名,逐一checkout上去,输入git log --oneline -n2输出这个分支最近两次提交,拿到提交的commit hash就是很长的那一串16进制码。
- 使用git branch "oldBranchName" commitHashCode(oldBranchName是你要恢复的分支名,commitHashCode是本地仓库这个分支的最新提交位置),这样原被删掉的远程分支就又在你本地创建出来了。
- git push就可以了,远端重新出现了原来的分支,其他同事又可以正常工作了。
- 写个循环吧,把branches.txt的所有分支如此重新创建即可恢复了。(温馨提示:可以用Python实现一个批处理工具脚本比较简单)
用到的命令行贴在这里了:
git branch -a
git log --oneline -n2
git branch <要恢复的分支名> <commitHashCode>
git push origin <本地分支名>:<远程分支名>