git reflog 时光穿梭机

目录

一、问题描述

二、解决


一、问题描述

小白花费一周时间做了git log如下所示6个功能。

image

commit的信息就是做了6个功能,每个功能对应一个commit的提交,分别是feature-1 到 feature-6”,然后执行强制回滚,git reset --hard 2216d4e。回滚到了feature-1上,并且回滚的时候加了--hard,导致之前feature-2 到 feature-6的所有代码全部弄丢了,现在git log上显示如下:

image

 小白还在这个基础上新添加了一个commit提交,信息叫feature-7,

image

现在情况就是feature-2到feature-6内容不见,还多了个feature-7,请问如何把丢失的代码feature-2 到 feature-6全部恢复回来,并且feature-7的代码也要保留呢?

二、解决

使用命令:git reflog 和git cherry-pick

首先,在git终端输git reflog,就会展示出所有你之前git操作。

git reflog

image

记好两个值:4c97ff3和cd52afc,他们分别是feature-7和feature-6的hash码。然后执行回滚,回到feature-6上:

git reset --hard cd52afc

image

好了,现在feature-6之前的代码已经恢复,剩下就来加上feature-7,执行git cherry-pick命令,我们之前已经知道feature-7的hash码为4c97ff3。期间可能有冲突,按提示解决即可。

git cherry-pick 4c97ff3

最终,问题得以解决,git log结果如下:

image

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值