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 大型灾难现场的更多相关文章
- Git储藏工作现场
假设你现在在dev分支工作,此时你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,你当前工作只进行到一半,还没法提交,预计完成还需1天时间 ...
- 【技术贴】大型发布会现场的WiFi网络应该如何搭建?
WiFi网络的部署要远远比一般人想象的复杂,不是说放上几十个AP带宽就自动增加几十倍,恰恰相反,简单放几十个AP带宽会由于AP之间的竞争而 迅速使带宽下降为几乎不可用.实际上这个问题完全可以写一本书了 ...
- 大型发布会现场的 Wi-Fi 应该如何搭建(密集人群部署wifi抗干扰)?
原文连接: http://www.zhihu.com/question/20890194 WiFi网络的部署要远远比一般人想象的复杂,不是说放上几十个AP带宽就自动增加几十倍,恰恰相反,简单放几十个A ...
- 大型面试现场:一条update sql执行都经历什么?
导读 Hi,大家好!我是白日梦!本文是MySQL专题的第 24 篇. 今天我要跟你分享的MySQL话题是:"从一条update sql执行都经历什么开始,发散开一系列的问题,看看你能抗到第几 ...
- ForkJoinPool大型图文现场(一阅到底 vs 直接收藏)
知识回顾 并发工具类我们已经讲了很多,这些工具类的「目标」是让我们只关注任务本身,并且忽视线程间合作细节,简化了并发编程难度的同时,也增加了很多安全性.工具类的对使用者的「目标」虽然一致,但每一个工具 ...
- 版本控制工具——Git常用操作(下)
本文由云+社区发表 作者:工程师小熊 摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码.使用分支.出现代码冲突的解决办法.紧急保存现场和恢复现场的操作.学会以后已经 ...
- git 一般的使用操作
1.先在github上建立自己的repository,取名为yourRepo 2.创建本地库 ssh -T git@github.com # 在初始化版本库之前,先要确认认证的公钥是否正确 git i ...
- Git 技巧小结
本篇博客内的内容,主要摘抄自 廖雪峰的 Git教程,这篇教程写的通俗易懂,步步深入,是我见过最棒的Git教程了.下面的全部内容,摘抄自此教程,有需要的朋友,请看完整版. Git版本库 git在创建版本 ...
- Git 经常使用命令总结
一 关于加入.删除和回退 1 git rm --cached file 想要git不再跟踪这个文件,可是又不想在硬盘中删除该文件 2 在被git管理的文件夹中删除文件时,能够选择例如以下两种方式: ...
随机推荐
- C语言结构体注意点
#include <stdio.h> int main() { /*************************************************** *定义结构体变量的 ...
- MySQL数据库 -- Navicat、pycharm连接数据库
内容目录 1.Navicat使用 2.pycharm使用数据库 一.Navicat使用 #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新 ...
- WXML 数据绑定
- Batch - forfiles 命令详解
forfiles 命令详解 C:\Users\cuixunxu>forfiles /? FORFILES [/P pathname] [/M searchmask] [/S] [/C comma ...
- 程序‘vim’已包含在下列软件包中
解决方法: 输入:sudo apt-get install ctags 输入:sudo apt-get install vim 输入:sudo ./config.sh (亲测有效)输入:vim tes ...
- VS 2019企业版激活码
Visual Studio 2019 EnterpriseBF8Y8-GN2QH-T84XB-QVY3B-RC4DF
- 【Tomcat】Tomcat调优
Tomcat的默认配置,性能并不是最优的,我们可以通过优化tomcat以此来提高网站的并发能力.提高Tomcat的性能可以分为两个方向. 服务器资源 服务器所能提供CPU.内存.硬盘的性能对处理能力有 ...
- NX二次开发-UFUN获取工程图详细信息UF_DRAW_ask_drawing_info
NX9+VS2012 #include <uf.h> #include <uf_draw.h> #include <uf_part.h> UF_initialize ...
- 如何用javascript高效的判断浏览器种类和版本
<script type="text/javascript"> var Sys = {}; var ua = navigator.userA ...
- 如果一个文件块有130M,请问有多少个mapper
如果一个文件块有130M,请问有多少个mapper 130M的文件将被分成2个mapper. 原因:根据FileInputFormat类 有一个成员变量 private static final do ...
