git 大型灾难现场

Posted chenkaiyin1201

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git 大型灾难现场相关的知识,希望对你有一定的参考价值。

由于某种原因,需要重建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来跟踪恢复的分支是否正确,是否还有遗漏的代码

个人感想

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

以上是关于git 大型灾难现场的主要内容,如果未能解决你的问题,请参考以下文章

老司机大型车祸现场

中培专家 现场讲述 互联网大型高可用高并发微服务架构设计与最佳实践

运输道路变“大型烟花现场”?资产监测设备避免烟花运输发生意外!

ForkJoinPool大型图文现场(一阅到底 vs 直接收藏)

大型车祸现场,电商秒杀超卖,这个锅到底有谁来背?

[大型真香现场]DHCP中继服务实验(全程操作,可跟做!)