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:
额外说明:
|-------------|--------------------------------------------------|
| 1 2
| # git log 也可以查看提交历史,但是不会显示被删除的分支 git log
|
查看 commitId {#查看-commitId}
找到commitId之后,可以查看该 commitId对应的详情,再次确认下是不是被误删的分支,指令是:
|-------------|----------------------------------------------------------------|
| 1 2
| # 这里的 commitId 需要替换成上一步中找到的 commitId git show commitId
|
如下图,可以查看详情再次确认该commitId是否是被误删的:
根据 commitId 恢复分支 {#根据-commitId-恢复分支}
确认好commitId对应的内容就是需要恢复的分支,那么就可以根据commitId恢复分支了,指令是:
|-------------|-----------------------------------------------------------------------------------------------|
| 1 2
| # branch-name 是指需要恢复的分支名,可以自己定义,这里以SCEM-3414为例 git checkout -b branch-name commitId
|
如下图,执行指令后,就可以看到分支已经恢复了:
好了,到此,简单的几步就可以把误删的分支恢复了,是不是很简单呢?
掌握科学的方式,才可以事半功倍!
总结 {#总结}
本文通过恢复一个被误删的分支,讲解了git操作历史的查看,commitId的查看,以及根据commitId恢复分支的方法。
git是日常开发中必不可少的工具,掌握好git的使用,可以事半功倍。强烈推荐花时间研究git的实现原理,这样在多个分支的冲突解决合并中,才能游刃有余。
交流学习 {#交流学习}
最后,把猿哥的座右铭送给你:投资自己才是最大的财富。 如果你觉得文章有帮助,请帮忙转发给更多的好友,或关注公众号:猿java,持续输出硬核文章。