Git专题:恢复已删除的分支:恢复误删除的分支数据 | 您所在的位置:网站首页 › 删除的cookie能找回吗 › Git专题:恢复已删除的分支:恢复误删除的分支数据 |
18.1 场景复现
我们现在模拟一下现场,首先我会新建一个分支,然后修改一些内容,然后提交到版本控制器中,最后再将此分支删除,模拟出分支被删除的情况。 首先,我们查看当前版本库控制器中有哪些分支,参考命令如下: git branch执行命令后,返回结果如下图所示: 接着我们新建一个新的分支,参考命令如下: git checkout -b retest命令执行之后,提示信息如下: 接着我们随意修改一下代码,参考命令如下: echo '测试恢复' > 测试恢复.php执行修改代码的命令后,我们再检查一下当前的修改状态,参考命令如下: git status执行命令后,返回的提示信息如下图所示: 命令执行完后返回如下图所示: 执行命令之后,返回的信息如下图所示: 命令执行之后,返回的信息如下图所示: 命令执行之后,返回信息如下图所示: 恢复的过程,相比实验环境搭建来说很简单,我们只需要两步操作即可,首先通过日志找到 commitid,然后通过新建分支的方式,加入commitid即可。 18.2.1 找出commitId在之前的章节当中,我们学习了 git log 命令,这条命令可以显示所有提交过的版本信息,但我们对分支的一些管理操作并不会显示出来;这些管理的操作日志并不是没有记录,而是需要使用 git reflog 命令才能显示,显示分支管理命令参考命令如下: git reflog show命令执行之后返回信息如下图所示: 接着使用 git branch 分支名称 commit_id 方式建立一个新的分支,参考命令如下: git checkout -b retest_v3 b52b955命令执行之后,返回信息如下图所示: 执行之后,返回的提交版本记录如下图所示: 在实验 Git 中,还有很多种方式造成可能丢失记录或分支的情况,恢复起来其实都大同小异,这里针对几个常见的问题进行说明一下。 18.3.1 回滚 reset 操作 如果你不小心使用 git reset 回滚了提交记录,想找回之前的提交记录也是可以的;可以 git reflog 查看操作历史,找到执行 git reset 命令之前 commitid,然后 git reset --hard 到那个 commitid 即可。 18.3.2 从历史版本中找回删除的文件 有时候,我们在某个版本中删除了文件,后来又突然发现需要这个文件,也是可以恢复的;恢复之前首先确定要恢复的文件在哪一个版本(commit)中,假设那个版本号是: 7a4312sd,文件路径为 abc.php 那么参考命如下: git checkout 7a4312sd abc.php 18.4 小结Git 是一个比较成熟的版本控制器系统,通常误操作导致的代码丢失,只要还没有触发 git gc 操作,那么基本都是可以恢复的,恢复的方式主要是通过 git reflog 找出对应的 commitid,然后按照去恢复: 使用 git reflog 可以查看 Git 的操作的日志,git log 只能查看版本日志;找回分支命令参考 git branch 分支名称 commitid。 |
CopyRight 2018-2019 实验室设备网 版权所有 |