如何实现在Idea对已经提交到远程仓库的push代码进行撤回

本文介绍了在IntelliJIDEA中,针对已推送至远程仓库的代码,如何通过两种方法进行撤销和回滚操作,包括直接对比版本选择性保留代码(适用于少量代码)和使用Git的Reset功能结合Forcepush来清除远程仓库的历史提交(适用于复杂情况)。
摘要由CSDN通过智能技术生成

概述

在正常开发中,我们一般都会进行代码提交,push到远程仓库,我这边代码管理工具用的是Git.有的时候我们会发现后面提交的代码不适应突发的需求,需要进行代码删除或者回滚,本文就介绍了如何实现在Idea对已经提交到远程仓库的push代码进行撤回

实战:

我目前分支的提交记录如下:
在这里插入图片描述
在5次提交记录中,我第一次新增了test1文件,在后面提交中对test1文件里面的内容进行了变更,我第四次新增了test2文件,并且文件内容为:test2第一次提交的内容,第三次我同时对test1、test2文件进行了编辑提交:
在这里插入图片描述
目前我发现【第一次提交的内容】以后提交的代码都有问题,想把提交记录还原到【第一次提交的内容】,在此基础上重新进行开发:
方法1:(此方法适用于这期间提交的代码比较少的情况)
按住 ctrl 分别选择【第一次提交的内容】和【test2第二次提交的内容、test第四次提交内容】两个commit节点,然后选择Compare Versions就能通过对比留下自己要的代码(复制粘贴替换就行)

这个方案在代码很简单时时非常有效的,甚至还能通过删除后最新commit和想要退回的commit在Compare Versions一下保障代码一致。
但是这个方法对于代码比较复杂的情况来说就不太好处理了,而且,这样还会保留错误提交的记录,很不友好。对此,Git也有一套较为优雅的操作流程,同样能解决这个问题

方法2:(此方法适用于这期间提交的代码比较少的情况)
选择【第一次提交的内容】-鼠标右键点击-【Reset Current Branch to Here…】
Reset
这个时候会跳出一个弹窗,里面有四个选项供你选择,我这里是选择hard
在这里插入图片描述
每个选项的具体意思:

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

点击【Reset】,会发现本地分支的提交已经恢复到你想要恢复的【第一次提交的内容】,test2文件也没了。
在这里插入图片描述
但是这个时候我们去gitLab查看对应项目的提交记录和代码,发现以前的提交记录和代码还是存在的,因为它只是本地开发分支进行了还原,我们需要把我们本地的分支同步到远程仓库,远程仓库才会同步更新
gitLab提交记录
我们随便选中项目的一个文件即可-鼠标右键:Git-Repository-push
在这里插入图片描述
点击之后会一个弹框,会发现弹框里面没任何changes.这个时候我们需要点击push,然后选择Force push,强推过去
在这里插入图片描述
在这里插入图片描述
强推完之后我们再去Gitlab查看对应分支,可以发现提交记录已经同步,【第一次提交内容】以后的提交记录都没了:
在这里插入图片描述
PS:需要注意有些分支是受保护的(比如master),强推的时候需要查看自己有没有权限,没权限的话会出现强推失败

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你想撤回已经push远程代码,可以使用以下命令: 1. 首先,使用git log命令查看你最近的提交记录,找到你想要撤回提交的commit id。 2. 然后,使用git revert命令撤回提交。例如,如果你想要撤回commit id为abc123的提交,可以使用以下命令: git revert abc123 3. 接下来,你需要将撤回提交push远程仓库。使用git push命令即可: git push origin master 注意,这里的master是你的分支名称,如果你使用的是其他分支,需要将其替换为对应的分支名称。 4. 最后,你需要将撤回提交推送到远程仓库。使用git push命令即可: git push origin master 注意,这里的master是你的分支名称,如果你使用的是其他分支,需要将其替换为对应的分支名称。 这样,你就成功地撤回push远程仓库代码。 ### 回答2: 在进行 Git 开发的过程中,我们常常会将本地的代码推送到远程仓库中,但有时候在推送之前可能会发现代码有误或不完整,此时就需要进行撤回操作。下面介绍两种方式实现撤回已经推送到远程代码。 1. revert 操作 revert 操作可以撤回已经推送到远程代码,但是它并不是直接删除该代码,而是将其视为一个新的提交,相当于在原有的提交中新增了一条反向提交信息,撤回这次提交的同时保留了原提交历史。撤回已经推送到远程代码可以通过以下步骤实现: 1.1. 打开 Git Bash 终端,并进入需要撤回代码仓库目录。 1.2. 使用 git log 命令查看需要撤回代码提交记录。 1.3. 根据查看到的提交记录,使用 git revert SHA 命令进行回滚,其中 SHA 为需要撤回代码所在提交的标识符。 1.4. 在弹出的文本编辑器中输入撤回提交的信息。 1.5. 保存并退出编辑器,提交修改。 1.6. 使用 git push 将本地修改推送到远程仓库中。 2. reset 操作 reset 操作是将本地仓库回退到某一个版本,相当于是删除了不存在于指定版本之后的所有提交记录,不仅可以删除本地未推送的代码,也可以撤回已经推送到远程代码,但是要注意的是,这样操作会彻底删除历史提交的所有信息,因此如果不确定是否需要删除,建议使用 revert 操作。使用 reset 操作撤销已经推送到远程代码可以通过以下步骤实现: 2.1. 打开 Git Bash 终端,并进入需要撤回代码仓库目录。 2.2. 使用 git log 命令查看需要撤回代码提交记录。 2.3. 根据查看到的提交记录,使用 git reset HEAD~X 命令将代码回退到指定版本,其中 X 为需要回退的版本号。 2.4. 使用 git push -f 命令强制推送修改,覆盖掉已经推送到远程代码。需要注意的是,这么做有可能导致团队合作出现问题,因此在推荐团队成员和管理员在进行此操作之前先进行充分的沟通和协商,避免操作错误对项目造成不好的影响。 总之,撤回已经推送到远程代码可以使用 revert 或 reset 操作,但是要视情况而定,根据实际需要进行选择。同时,为了避免不必要的麻烦,建议使用 Git 之前学习好相关的操作指南,提高自己的代码管理能力。 ### 回答3: Git是一个非常流行的版本控制系统,常常用于协同工作、代码管理等方面。在Git中,push命令可以将本地代码库的修改推送到远程仓库。但有时候我们会发现自己不小心将错误的代码提交到了远程仓库,这时就需要撤回之前的提交Git的撤销操作主要有两种,分别是撤销本地的提交撤回远程仓库提交。 撤销本地的提交:如果你还没有将本地代码推送到远程仓库,那么可以通过以下命令撤销本地的提交: ``` git reset --soft HEAD^ ``` 该命令的意思是将HEAD指针指向上一次提交的父节点,并将本地的修改保留在工作区中,让你有机会修复之前的错误。 撤回远程仓库提交:如果你已经代码推送到了远程仓库,那么你需要使用撤销提交命令来撤回远程仓库提交: ``` git revert <commit-id> ``` 其中<commit-id>是需要撤销的提交的SHA-1哈希值。该命令会自动创建一个新的提交来撤销之前的提交,并将该提交推送到远程仓库。 总之,撤销Git上的提交是一项必要的技能。在进行任何提交之前,请仔细检查您的代码,以确保您不会意外地将错误的代码推送到远程仓库。如果发生错误,适当使用Git的命令可以更好地管理代码库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值