Git 如何撤回已 Push 的代码?

这篇具有很好参考价值的文章主要介绍了Git 如何撤回已 Push 的代码?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

git 已经push的代码回退,java,后端,git

1.基础的手动操作(比较笨,不推荐)

 

这样的操作非常不推荐,但是如果你不了解git,确实是我们最容易理解的方式。

如果你的错误代码不是很多,那么你其实可以通过与你想要恢复到的commit进行对比,然后手动删除错误代码,然后删除不同的代码。

git 已经push的代码回退,java,后端,git

按住 ctrl 选择想要对比的两个commit,然后选择 Compare Versions 就能通过对比删除掉你想要删除的代码。

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

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

这样的手动操作显然显得有些笨拙了,对此git有一套较为优雅的操作流程,同样能解决这个问题。

2. git Revert Commit(推荐)

git 已经push的代码回退,java,后端,git

同样的,我第三次提交了错误代码,并且已经push到远程分支。想要撤回这部分代码,只需要右键点击错误提交记录

git 已经push的代码回退,java,后端,git

git自动产生一个Revert记录,然后我们会看到git自动将我第三次错误提交代码回退了,这个其实就相当于git帮我们手动回退了代码。

git 已经push的代码回退,java,后端,git

后续,只需要我们将本次改动push到远程,即可完成一次这次回退操作,

git 已经push的代码回退,java,后端,git

revert相当于自动帮我们进行版本回退操作,并且留下改动记录,非常安全。这也是评论区各位大佬非常推荐的。

但是revert还是存在一点不足,即一次仅能回退一次push。如果我们有几十次甚至上百次的记录,一次次的单击回退不仅费时费力而且还留下了每次的回退记录,我个人觉得revert在这种情况下又不太优雅。

3. 增加新分支(推荐撤回较多情况下使用)

如果真的需要回退到上百次提交之前的版本,我的建议是直接新建个分支。

在想要回到的版本处的提交记录右键,点击new branch

git 已经push的代码回退,java,后端,git

git 已经push的代码回退,java,后端,git

git 已经push的代码回退,java,后端,git

新建分支的操作仅仅增加了一个分支,既能保留原来的版本,又能安全回退到想要回退的版本,同时不会产生太多的回退记录。

但是此操作仍然建议慎用,因为这个操作执行多了,分支管理就又成了一大难题。

4. Reset Current Branch 到你想要恢复的commit记录(不太安全,慎用)

git 已经push的代码回退,java,后端,git

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

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

  1. Soft:你之前写的不会改变,你之前暂存过的文件还在暂存。

  2. Mixed:你之前写的不会改变,你之前暂存过的文件不会暂存。

  3. Hard:文件恢复到所选提交状态,任何更改都会丢失。你已经提交了,然后你又在本地更改了,如果你选hard,那么提交的内容和你提交后又本地修改未提交的内容都会丢失。

  4. keep:任何本地更改都将丢失,文件将恢复到所选提交的状态,但本地更改将保持不变。你已经提交了,然后你又在本地更改了,如果你选keep,那么提交的内容会丢失,你提交后又本地修改未提交的内容不会丢失。

git 已经push的代码回退,java,后端,git

git 已经push的代码回退,java,后端,git

git 已经push的代码回退,java,后端,git

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

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

git 已经push的代码回退,java,后端,git

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

git 已经push的代码回退,java,后端,git

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

git 已经push的代码回退,java,后端,git

注意:以上使用的是2023版IDEA,如果有出入的话可以考虑搜索使用git命令文章来源地址https://www.toymoban.com/news/detail-857831.html

到了这里,关于Git 如何撤回已 Push 的代码?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IntelliJ Idea 撤回git已经push的操作

    最初的样子 现在的样子 第一步,commit到本地撤回: 打开提交历史记录,选中回退的版本右键,点击“Reset Current Branch to Here…”,然后选中“Mixed”,点击Reset后,之前commit的代码会在本地显示未提交的。修改之后继续正常提交即可。 第二步,push到远程仓库的撤回 需要idea和

    2024年02月05日
    浏览(50)
  • IDEA git 代码已经commit,但未 push推送,如何撤销提交缓存区代码

    记录自己提交代码时,手滑错误commit了多余的文件,但未push到云端,想要撤回整个commit的操作: idea菜单栏上的 VCS–Git–Reset HEAD…     此时按照图中选择回退的方式,以及回退到哪个版本,点击“Reset”即可,在\\\"Version Control\\\" 中 “log” 里,最新一次提交的记录消失即回退

    2024年02月10日
    浏览(72)
  • Idea:撤销git已经push的代码

    1、撤回commit:右键git提交的历史记录中要回退的版本,点击”Reset Current Branch to Here…“,然后选择”Hard“,点击”Reset“(如果本地代码不需要回滚的话选soft) 2、撤回push:右键git提交的历史记录中要回退的版本,点击”Copy Revsion Number” 选择“Reset HEAD”,Reset Type选择Ha

    2024年02月11日
    浏览(64)
  • IDEA撤销Git 已经push推送的代码

    想撤销已经  push推送的代码 撤销push推送的代码 【git log 】查看日志找到要回退版本的id 因为想 撤回 上面的代码,所以是 回退到 下面这个版本 ,用下面这个版本的id 【git reset --soft 想要回退到的版本id】 回退 【git push origin master --force】 再次推送到远程     成功  !!  查看我

    2024年02月15日
    浏览(53)
  • git 撤销已经push的代码(本地代码和远程仓库)

    注: HEAD~1 的意思是最近一个版本,也可以写成 HEAD^ 如果需要撤回最近两次提交的commit,可以使用 HEAD~2 ,依次类推。 此时通过 git log 可查看本地代码已经回退到 目标版本。 如果你是项目的owner,在本地 master 分支使用git rebase 或者 git reset撤销了一些commit之后,想要强制推送

    2024年02月11日
    浏览(69)
  • Idea:撤销git已经push的代码(完美解决)

    撤回commit:右键git提交的历史记录中要回退的版本,点击”Reset Current Branch to Here…“,然后选择”Hard“,点击”Reset“(如果本地代码不需要回滚的话选soft)   撤回push:右键git提交的历史记录中要回退的版本,点击”Copy Revsion Number” 选择“Reset HEAD”,Reset Type选择Hard,

    2024年02月11日
    浏览(76)
  • git——如何撤销已经push到远程的修改

    先明确四种状态: state 1 (上一次提交) 本地文件编辑后进行保存【操作】 state 2 本地文件保存后进行 git add 【操作】 state 3 提交 commit【操作】 state 4 对commit 进行 push【操作】 state 5 首先,push到远程的提交,肯定是已经在本地提交过的,因此先撤销本地分支。 撤销本地分支

    2024年02月15日
    浏览(46)
  • git撤回上一次push

    我们有时候误提交代码需要回滚到上一个版本,需要通过git命令重新提交处理 git reset 命令用于回退版本,可以指定退回某一次提交的版本。 git push 命令用于从将本地的分支版本上传到远程并合并。 将当前版本强制提交 git status 、 git log 我写东西本来字数就少,真叻色 文章

    2024年02月16日
    浏览(53)
  • git撤回最近一次push操作

    将指定远程分支强制覆盖到当前本地分支(相当于放弃当前本地分支的所有更新): git reset --hard origin/远程分支名 。其中origin就是远程名,代表使用origin的远程指定分支,覆盖本地当前分支。 其中,branch_name 是你想要撤回 push 操作的分支的名称。 这个命令将会强制推送到远

    2024年02月14日
    浏览(38)
  • git中commit和push回退

    步骤一:查看日志 查看日志,q退出 git log --pretty=oneline 查看指定日志行数: git log --pretty=oneline -4 步骤二:撤销 git reset --soft HEAD~1 命令拓展: –soft 不删除工作空间改动代码,撤销commit,不撤销git add . –hard删除工作空间改动代码,撤销commit,撤销git add . 注意完成这个操作后

    2024年02月14日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包