GIT:恢复已删除的本地分支
应用场景
- 我们开发迭代包时,偶尔会出现某需求因特殊原因无法正常与迭代一起发布的情况,期望保留并延续到下个迭代中发布。如果有良好的分支管理,本地分支大概率会非常多,我经常会定期清理,此时也许会造成误删。
- 由于并行开发多个分支,误将某一个未合并的分支删除了。
本篇仅说明在此类情况下如何恢复已删除、且未上传的本地分支。
操作
首先键入命令以标准时间格式展示日志:
git reflog --date=iso
reflog是reference log的意思,也就是引用log,记录HEAD在各个分支上的移动轨迹。

左侧黄字部分为每一次执行 branch 操作的 Hash ID ,包括不限于 checkout、merge、reset、rebase、commit 等等 branch 相关操作,我们在当前项目管理库中所有本地分支的 Commit 都会记录在该日志中。
而恢复被删除分支也很简单,执行:("<", ">"在实际执行时省略)
git checkout -b <分支名> <hash ID>
其中 <分支名> 是用来存放目标分支的“新分支的名字”,<hash ID> 是目标恢复分支的 hash ID
git checkout -b 命令中的 -b 作用为 "新建并切换",相当于:
git branch <分支名>
git checkout <分支名>
更多 Branch 相关操作请参考:GIT:常用分支相关命令(git branch)

浙公网安备 33010602011771号