51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

如何恢复被删除的git分支

Hi,你好,我是猿java。

今天,公司有个小伙伴不小心误删了辛辛苦苦开发了一周的git branch,如果要重写代码,那简直要疯了,有没有什么好办法可以恢复呢? 今天我们就来聊一聊。

相信直觉 {#相信直觉}

首先,你要相信 git是个很强大的项目管理,如果没有恢复的方法,那么它就配不上你这么优秀的程序员。好了,废话不多说,直接上干货。这里以恢复误删的分支"SCEM-3414"为例。

查看git操作历史 {#查看git操作历史}

git操作的所有历史都是有章可查的,指令是:

|-------------------|---------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | # 首先,切换到你的工程根目录下 cd project_root_path # git reflog 记录了每一次命令,--date=iso 表示以标准时间显示 git reflog show --date=iso |

如下图,提交历史信息里面包含了 commitId,HEAD, comment等信息,可以根据comment信息找到对应的commitId:
img.png

额外说明:

|-------------|--------------------------------------------------| | 1 2 | # git log 也可以查看提交历史,但是不会显示被删除的分支 git log |

查看 commitId {#查看-commitId}

找到commitId之后,可以查看该 commitId对应的详情,再次确认下是不是被误删的分支,指令是:

|-------------|----------------------------------------------------------------| | 1 2 | # 这里的 commitId 需要替换成上一步中找到的 commitId git show commitId |

如下图,可以查看详情再次确认该commitId是否是被误删的:
img.png

根据 commitId 恢复分支 {#根据-commitId-恢复分支}

确认好commitId对应的内容就是需要恢复的分支,那么就可以根据commitId恢复分支了,指令是:

|-------------|-----------------------------------------------------------------------------------------------| | 1 2 | # branch-name 是指需要恢复的分支名,可以自己定义,这里以SCEM-3414为例 git checkout -b branch-name commitId |

如下图,执行指令后,就可以看到分支已经恢复了:

img.png

好了,到此,简单的几步就可以把误删的分支恢复了,是不是很简单呢?

掌握科学的方式,才可以事半功倍!

总结 {#总结}

本文通过恢复一个被误删的分支,讲解了git操作历史的查看,commitId的查看,以及根据commitId恢复分支的方法。

git是日常开发中必不可少的工具,掌握好git的使用,可以事半功倍。强烈推荐花时间研究git的实现原理,这样在多个分支的冲突解决合并中,才能游刃有余。

交流学习 {#交流学习}

最后,把猿哥的座右铭送给你:投资自己才是最大的财富。 如果你觉得文章有帮助,请帮忙转发给更多的好友,或关注公众号:猿java,持续输出硬核文章。

赞(5)
未经允许不得转载:工具盒子 » 如何恢复被删除的git分支