git 大型灾难现场
2024-09-01 08:00:09
由于某种原因,需要重建git仓库。因此删了所有分支,重建git仓库。
删除整个过程
- 删除所有分支(除master外)
- git branch -d {branch_name} # 删除本地分支
- git push origin --delete {branch_name} # 删除远程分支
- git remote prune origin # 同步远程分支,清理已删除的远程分支
- git checkout --orphan temp_branch # 新建临时空分支
- 删除master分支(可能需要先修改default_branch,才能删除。default_branch 有保护权限)
- 修改分支名,并push到远程仓库
- git branch -m master
- git push origin master
整个仓库清理重建完成后,突然想起某个分支还有重要代码未拷贝...好了,大型灾难现场开始了...
由于新的分支已经完全为空了,所以没办法根据log恢复。
由于备份了一份旧的代码库(这时候简直是全村的希望)...虽然本地分支也已经被全部删除了(傻逼操作)...
通过git log进行代码恢复。
恢复整个过程
- 查询log日志,git log
- 通过log日志恢复相关的分支
- 分支恢复
- git branch recover_branch_abc 4d631458dcbaeb0d15b866b61d6cf9196ec3da26
- 然后就可以查到相关被删除的分支了
- 可以根据gitk来跟踪恢复的分支是否正确,是否还有遗漏的代码
个人感想
无论做什么危险的操作,都要切记备份,然后一定要思考好会发生的问题...
最新文章
- Find Missing Term in Arithmetic Progression 等差数列缺失项
- java实现二分查找
- form表单验证和事件、正则表达式
- Java Decompiler 反编译工具下载地址及JD-Eclipse设置菜单翻译
- 人工智能系统Google开源的TensorFlow官方文档中文版
- spark.SecurityManager: SecurityManager: authentication disabled
- 学习记录012-NFS
- 01-Quartz2D介绍
- 美丽渐变色的Form
- Cocos2d-JS自定义粒子系统
- MFC 仿QQ聊天软件(黄花寒)
- lsof-列出当前系统打开文件
- BZOJ.1028.[JSOI2007]麻将(贪心)
- Android网络编程(一)HTTP协议原理
- Angular动态表单生成(八)
- jquery validate不用submit提交,用js提交的
- sql_q.format
- java中引用的原理
- Python 网络编程了解
- VUE入门实例,模版组件用法