git reset撤销操作

一、问题场景:今天我在某功能分支上完成了一个小功能迭代,并且已经在本地commit了。当我准备向服务器push时,还是习惯性地执行git pull --rebase进行同步,以防止入库服务器失败。没想到悲剧就发生了,即git pull --rebase失败。

二、原因分析:

1、发现是自己坑了自己,原因是昨天将某条bugfix分支merge过来时,出现冲突并解决了,但是有同事又往这条功能分支提交了新功能并已经入库了。

2、遇到这种情况,我想到了两种解决方法:一是git pull --rebase;二是因为merge冲突比较少,就先reset该功能分支再pull到目前服务器上的最新提交,最后执行merge和解决冲突操作。

(1)我是先尝试了方案一,即执行git pull --rebase,结果发现这样做没用。重点来了,rebase失败了,因为没有执行rebase abort操作,导致了今天我再次执行git pull --rebase操作失败。

(2)没办法,最后是使用了方案二才解决了该问题并入库到服务器。

3、自己埋的坑就要自己来填,对于今天的这个问题,没遇到过只能走一步算一步,所以我就执行了rebase abort操作,没想到执行后已经回退到我昨天的merge提交。幸运的是,git reflog给我开了生路。

命令:git reflog

说明:该命令可以查看git历史操作记录,比如commit、reset操作的记录

三、总结:该命令在特定场景下还是非常实用的,当你执行了git reset回退了某次本地commit之后,因为该commit还没提交到服务器上,你又想恢复到该次commit,就可以使用该命令查看该commit id,然后再执行git reset commit id操作就可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值