git reset 应用场景示例

今天使用eclipse的git插件进行代码合并时,又出现了匪夷所思的事:

我本地commit后,pull远程仓库,merge过程中不知道出现什么错误,导致我当时的本地仓库处于merging状态,代码一部分更新了,一部分没更新。由于更新的代码量比较大,一点一点区分过于困难,一度不知所措。

后来经git大神一句指点,直接把我local还原到HEAD,尝试重新pull就可以了,也就是使用 git reset --hard HEAD,把 本地仓库回滚到最后一个commit状态

同时这件事也再次说明,在合作开发过程中,随时commit是一个好习惯,最好是每开发完一个小功能点就commit一次。

最后,再总结一下git reset的其他常用应用场景:

回滚add操作:

RT。

回滚最近几次commit:

git reset --hard HEAD~2:回滚最近两次
git reset --hard HEAD~n:回滚最近n次

回滚pull:

如果你从远程仓库pull下来的代码跟本地产生很多冲突,而你又暂时不想解决这些冲突,可以使用 git reset --hard ORIG_HEAD 回滚这次操作,前提是你pull之前已经commit过,不然这次回滚会把你最后一次commit后又更改的代码丢弃,原因上面说过,该命令是回到上一次commit状态,如果pull之前没有commit,请看下一个场景。

在没有commit的情况下回滚pull:

如果你本地更改了代码,但是知道这次pull不会跟自己的更改有冲突,于是你先pull了,然后又TM后悔了,想回滚,此时请使用git reset --merge ORIG_HEAD,把–hard换成–merge就可以保留你之前的那些更改。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值