git 大型灾难现场
Posted chenkaiyin1201
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git 大型灾难现场相关的知识,希望对你有一定的参考价值。
由于某种原因,需要重建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来跟踪恢复的分支是否正确,是否还有遗漏的代码
个人感想
无论做什么危险的操作,都要切记备份,然后一定要思考好会发生的问题...
以上是关于git 大型灾难现场的主要内容,如果未能解决你的问题,请参考以下文章
中培专家 现场讲述 互联网大型高可用高并发微服务架构设计与最佳实践
运输道路变“大型烟花现场”?资产监测设备避免烟花运输发生意外!