由于某种原因,需要重建git仓库。因此删了所有分支,重建git仓库。

删除整个过程

  1. 删除所有分支(除master外)
    1. git branch -d {branch_name}  # 删除本地分支
    2. git push origin --delete {branch_name}  # 删除远程分支
    3. git remote prune origin # 同步远程分支,清理已删除的远程分支
  2. git checkout --orphan temp_branch # 新建临时空分支
  3. 删除master分支(可能需要先修改default_branch,才能删除。default_branch 有保护权限)
  4. 修改分支名,并push到远程仓库
    1. git branch -m master
    2. git push origin master 

整个仓库清理重建完成后,突然想起某个分支还有重要代码未拷贝...好了,大型灾难现场开始了...

由于新的分支已经完全为空了,所以没办法根据log恢复。

由于备份了一份旧的代码库(这时候简直是全村的希望)...虽然本地分支也已经被全部删除了(傻逼操作)...

通过git log进行代码恢复。

恢复整个过程

  1. 查询log日志,git log
  2. 通过log日志恢复相关的分支
  3. 分支恢复
    1. git branch recover_branch_abc 4d631458dcbaeb0d15b866b61d6cf9196ec3da26
  4. 然后就可以查到相关被删除的分支了
  5. 可以根据gitk来跟踪恢复的分支是否正确,是否还有遗漏的代码

个人感想

无论做什么危险的操作,都要切记备份,然后一定要思考好会发生的问题...

最新文章

  1. Find Missing Term in Arithmetic Progression 等差数列缺失项
  2. java实现二分查找
  3. form表单验证和事件、正则表达式
  4. Java Decompiler 反编译工具下载地址及JD-Eclipse设置菜单翻译
  5. 人工智能系统Google开源的TensorFlow官方文档中文版
  6. spark.SecurityManager: SecurityManager: authentication disabled
  7. 学习记录012-NFS
  8. 01-Quartz2D介绍
  9. 美丽渐变色的Form
  10. Cocos2d-JS自定义粒子系统
  11. MFC 仿QQ聊天软件(黄花寒)
  12. lsof-列出当前系统打开文件
  13. BZOJ.1028.[JSOI2007]麻将(贪心)
  14. Android网络编程(一)HTTP协议原理
  15. Angular动态表单生成(八)
  16. jquery validate不用submit提交,用js提交的
  17. sql_q.format
  18. java中引用的原理
  19. Python 网络编程了解
  20. VUE入门实例,模版组件用法

热门文章

  1. JS点击2
  2. 框架_mybatis2使用注解
  3. SQLite 小调研
  4. shell脚本输出九九乘法表
  5. 在阿里云 既php和mysql装好之后,如何安装zabbix
  6. Java SE(2)
  7. NX二次开发-C++ DeleteFile删除文件实例代码
  8. 原生js实现文件下载并设置请求头header
  9. 英语影视台词---The Professor
  10. Unity NGUI 粒子的排序