背景
git
仓库中的某个分支,本地以及线上都被同步删除了,需要找回该分支。
分析
git
中并没有提供撤销分支删除的命令,所以直接通过对应指令来实现是不可能的,那么应该怎么做呢?
我们要找回该分支,实质上我们是需要找回什么呢?我们需要找那个分支上的代码,也就是这个分支上最后一次提交的代码。
方案
-
找到该分支对应最后一次提交的
commit id
。- 本地开发此分支的仓库环境还存在,只是线上线下都删除了此分支。
利用git reflog
查询本地所有的日志
git reflog
找到对应那个分支的最后一次提交对应的
commit id
- 删除分支合并过到还在存在的分支上
查询git仓库记录拿到commit id
- 本地开发此分支的仓库环境还存在,只是线上线下都删除了此分支。
-
执行
git checkout -b 新建分支名称 commitId
,就会基于commitId
这次提交时工作区新建一个分支,就能达到我们找到删除分支的代码效果。
核心点
需要找删除分支最后一次提交的节点对应的commitId
,然后通过commitId
恢复代码,新建分支。