Git push错分支该如何回滚远程分支代码

Java工具 潘老师 1年前 (2023-03-14) 990 ℃ (0) 扫码查看

在开发过程中,我们经常会因为迭代到新分支而忘记将分支切换到最新分支,导致将新增的代码误提交到老的分支上,如果没有push还好,一旦push,想要回滚就会稍微麻烦点,这里潘老师教大家如何去实现Git push错分支后也可以回滚远程分支代码,并将原提交的代码push到新分支。

前置说明

首先我们假设有两个分支,一新一旧,新分支为feature/V1.0.2_A,旧分支为feature/V1.0.1_A,假设不小心将一部分本该提交到新分支的代码却误提交到了旧分支,并且已经push上去。现在我们要将这部分旧分支代码还原,并将这部分误提交的代码再提交到新分支上,那么问题就解决了。

操作步骤

第1步:查看git提交日志

首先在旧分支上查看git提交日志,使用git log指令,找到我们误提交代码之前的commit id也就是我们的还原点,假设为ae94e547c2xxxxxx1。

第2步:将旧分支代码撤回暂存区

首先我们要将旧分支误push的代码撤回带暂存区。我们直接使用如下指令:

git reset --soft ae94e547c2xxxxxx1

此时我们会发现在还原点之后的误提交的代码,都回到了暂存区,但是要注意,此时远程仓库中的误提交代码还在,我们后面再处理。

第3步:切换新分支

这时候我们切换到最新分支,如果有需要merge的就merge,然后将本地暂存区的代码commit并push到新分支,这样误提交代码就提交到了正确的分支。

第4步:强制还原旧分支

最后,我们再切换到旧分支,此时暂存区已经没有新代码了,如果还存在新代码,就先使用–hard强制回退到前一个版本,并且本地不会残留新代码,然后我们再push

git reset --hard ae94e547c2xxxxxx1

如果你直接push,会发现需要merge远程那部分误提交代码,因此我们不能拉取,也不能merge,而是要将本地的代码直接强制push上去,覆盖掉误提交代码,执行指令如下:

##语法:git push -f 远程仓库名 当前分支名:远程其他分支名
##案例
git push -f origin feature/V1.0.1_A:feature/V1.0.1_A

-f表示force强制更新,如果是相同分支名,后面的名称不写应该也可以。

这样原先的旧分支就被还原了。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/5892.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】