Skip to content

git恢复远程删除的远程分支

背景

git 仓库中的某个分支,本地以及线上都被同步删除了,需要找回该分支。

分析

git中并没有提供撤销分支删除的命令,所以直接通过对应指令来实现是不可能的,那么应该怎么做呢?

我们要找回该分支,实质上我们是需要找回什么呢?我们需要找那个分支上的代码,也就是这个分支上最后一次提交的代码。

方案

  1. 找到该分支对应最后一次提交的commit id
    • 本地开发此分支的仓库环境还存在,只是线上线下都删除了此分支。 利用git reflog查询本地所有的日志
    git reflog
    找到对应那个分支的最后一次提交对应的commit id
    • 删除分支合并过到还在存在的分支上 查询git仓库记录拿到commit id
  2. 执行git checkout -b 新建分支名称 commitId,就会基于commitId这次提交时工作区新建一个分支,就能达到我们找到删除分支的代码效果。

核心点

需要找删除分支最后一次提交的节点对应的commitId,然后通过commitId恢复代码,新建分支。