git 如何撤回已push的代码

idea如何撤回push到远程的代码 -- 编程屋 (rivers-all.com)

Idea:撤销git已经push的代码(完美解决)_idea回退已经push的代码_IT枫斗者的博客-CSDN博客

使用IDEA新建、合并、删除分支。_idea删除分支_胡亥。的博客-CSDN博客

在日常的开发中,我们经常使用Git来进行版本控制。有时候,我们可能会不小心将错误的代码 Push 到远程仓库,或者想要在本地回退到之前的某个版本重新开发。

或者像我一样,写了一些感觉以后很有用的优化方案push到线上,又接到了一个新的需求。但是呢,项目比较重要,没有经过测试的方案不能轻易上线,为了承接需求只能先把push上去的优化方案先下掉。

现在我的分支是这样的,我想要在本地和远程仓库中都恢复到help文档提交的部分。

最简单粗暴的方法

如果你的错误代码不是很多,那么你其实可以通过与你想要恢复到的commit进行对比,然后手动删除错误代码,然后删除不同的代码。
按住 ctrl 选择想要对比的两个commit,然后选择 Compare Versions 就能通过对比删除掉你想要删除的代码。

这个方案在代码很简单时时非常有效的,甚至还能通过删除后最新commit和想要退回的commit在Compare一下保障代码一致。

但是这个方法对于代码比较复杂的情况来说就不太好处理了,如果涉及到繁杂的配置文件,那更是让人头疼。

而且,这样还会保留错误提交的记录,对于有强迫症的我来说,有点接受不能。

对此,git也有一套较为优雅的操作流程,同样能解决这个问题。

IDEA 中 git较为优雅的方法

1. Reset Current Branch 到你想要恢复的commit记录

这个时候会跳出四个选项供你选择,我这里是选择hard

其他选项的含义仅供参考,因为我也没有一一尝试过。

  1. Soft:你之前写的不会改变,你之前暂存过的文件还在暂存。
  2. Mixed:你之前写的不会改变,你之前暂存过的文件不会暂存。
  3. Hard :文件恢复到所选提交状态,任何更改都会丢失。 你已经提交了,然后你又在本地更改了,如果你选hard,那么提交的内容和你提交后又本地修改未提交的内容都会丢失。
  4. keep :任何本地更改都将丢失,文件将恢复到所选提交的状态,但本地更改将保持不变。 你已经提交了,然后你又在本地更改了,如果你选keep,那么提交的内容会丢失,你提交后又本地修改未提交的内容不会丢失。

然后,之前错误提交的commit就在本地给干掉了。但是远程仓库中的提交还是原来的样子,你要把目前状态同步到远程仓库。也就是需要把那几个commit删除的操作push过去。

打开push界面,虽然没有commit需要提交,需要点击Force Push ,强推过去。

需要注意的是对于一些被保护的分支,这个操作是不能进行的。需要自行查看配置,我这里因为不是master分支,所以没有保护。

可以看到,远程仓库中最新的commit只有我们的help文档。在其上的三个提交都没了。

注意:以上使用的是2023版IDEA,如果有出入的话可以考虑搜索使用git命令。

相关推荐
大卫小东(Sheldon)5 小时前
GIM 2.0 发布:真正让 AI 提交消息可定制、可控、可项目级优化
git·rust·gim
知识即是力量ol8 小时前
研发实战:Git 规范化开发全流程指南
git·gitee·github
我是一只代码狗8 小时前
idea创建分支
git
知识即是力量ol10 小时前
Git 快速入门 (实习生视角)
git·gitee·github
Dontla11 小时前
Git撤销上一次提交(撤销提交,Git回退提交)git reset、git revert
git
wdfk_prog11 小时前
解决 `git cherry-pick` 引入大量新文件的问题
大数据·git·elasticsearch
fu的博客13 小时前
Git从删库到跑路
git·gitee·github
要加油哦~13 小时前
git 报错 | husky - pre-commit hook exited with code 1 解决
git
知识即是力量ol14 小时前
Git 实战指南:从分支管理到冲突解决
git·github·源代码管理
weixin_462446231 天前
Git 本地忽略 application-dev.yml 的最佳实践:不提交 .gitignore,不影响团队协作!
git