Git回退已经提交的commit,以及为合并的请求

本文详细介绍了如何回退Git中已提交但未推送到远端的commit,以及如何处理已经push到远端的commit。通过`git reset --hard`命令可以回退本地提交,而用`git push --force`可以覆盖远端提交,但需要注意可能产生的协同问题。对于未完成的合并,文章提供了解决方案,避免不必要的冲突和操作。
摘要由CSDN通过智能技术生成

1:

任何还没有PUSH到远端(origin),但已经被提交到本地(local)的commit,都可以用以下命令回退。

git reset HEAD~1 --hard 

意思就是说跑git.exe里的reset方法,用当前的HEAD回退一步,这一步或许不止包含一个变动(changes),并且用--hard 指令。

当然,你可以跑多次这个命令来一步步回退到你想要的地方,你也可以找到想要回退commit-id来进行

git reset --hard <sha1-commit-id>

注意:这样回退你所修改的代码就会直接被清掉了,但是可以用git log来查看。这个不展开了。

2:

如果你的commit已经push到远端(origin)了,你还可以通过以下命令强行覆盖提交历史(history),这一句是跑在上面回退本地提交之后的。

git push origin HEAD --force

这里用的是git push,其实原因就是我们这里做的根本不是什么回退动作,而是直接用我们刚刚回退整理好的版本强行覆盖(--force)远端(origin),无论你是不是在做回退的操作,其实只要是需要覆盖远端的时候都会用到这个。

但这里可能会产生一个新的问题,就是你想要强制回退且强行覆盖的commit,如果被其他同事拉取(pull)了的话,当这位同事再次推送(push)这个分支的时候

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值