git如何撤销commit(未push)

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

Undo Commit,Revert Commit,Drop Commit的区别

是否删除对代码的修改 是否删除Commit记录 是否会新增Commit记录
Undo Commit 不会 未Push会,已Push不会 不会
Revert Commit 不会
Drop Commit 未Push会,已Push不会 不会

一、前言

某次在idea中执行commit后(未push), 发现提交代码错误了想撤回,此篇文章整理这种情况下如何撤回。

如下图:(commit提交了一次测试记录(未push),新增了Test.java文件)
git如何撤销commit(未push),git,idea,git

二、退回commit(未push)

2.1、方式一:undo commit

适用情况:代码修改完了,已经Commit了,但是还未push,然后发现还有地方需要修改不想提交本次记录了。这时可以进行Undo Commit,修改后再重新Commit。

如果已经进行了Push,线上的Commit记录还是会存在的

简单来说,就是撤销了你Commit的这个动作。详细解释下:

1、首先,对项目进行了代码修改,然后进行commit操作。
git如何撤销commit(未push),git,idea,git

2、确认Commit之后(未进行push)
git如何撤销commit(未push),git,idea,git
3、进行Undo Commit操作
右键要撤销的记录,选择undo commit
git如何撤销commit(未push),git,idea,git

git如何撤销commit(未push),git,idea,git

执行后和未Commit之前完全一样, 而且commit记录也没了
git如何撤销commit(未push),git,idea,git

2.2、方式二: reset current branch to here

适用情况:已commit未push

右键错误记录的上一次记录,然后选择reset current branch to here,选择Mixed
git如何撤销commit(未push),git,idea,git
git如何撤销commit(未push),git,idea,git
撤销后会把commit记录删除掉,提交的文件进入到Unversioned Files目录中
git如何撤销commit(未push),git,idea,git

  • Soft:回滚到指定版本,并保留所有更改,这些更改将被重新提交。使用这种模式,你可以撤销已经提交的更改,然后重新提交。
  • Mixed:回滚到指定版本,并保留所有更改,但是更改将不会被重新提交(文件进入到Unversioned Files中)。使用这种模式,你可以撤销已经提交的更改,并保留这些更改,以备后续修改和提交。
  • Hard:回滚到指定版本,并删除指定版本之后的所有更改。使用这种模式,你可以完全撤销指定版本之后的所有更改。
  • Keep:回滚到指定版本,但是保留指定版本之后的更改。使用这种模式,你可以撤销指定版本之后的更改,并保留这些更改,以备后续修改和提交。

keep和hard撤销后会把文件也删除掉,强烈建议不要使用或者慎用

三、退回push

3.1、方式一:Reset HEAD

注意:此退回是不管你commit没push,还是commit已经push好了,都会退回到你指定的版本号.

步骤1.idea找到项目commit提交记录列表:
项目名右键—Git—Show History 或者idea下方的Version Control都可以打开历史提交的记录信息
git如何撤销commit(未push),git,idea,git
步骤2.选择需要回退到的版本号:
例如我最新代码是Test2,需要回退到上一次Test1提交的版本

选择对应提交的记录右击——Copy Revision Number ; 复制commit的编号
git如何撤销commit(未push),git,idea,git
步骤3.回退到对应的版本
项目名右击——Git——Repository——Reset HEAD
git如何撤销commit(未push),git,idea,git
步骤4.输入需要回退的commit编号
第一步弹框中Reset Type选择——第2步复制的commit编号——Reset

这个的Reset Type有三个可选,按你自己意愿选择可选参数:

首先了解:
工作区 - 暂存区 - 本地仓库
代码编写及修改是在工作区 - git add 将本地修改添加到暂存区 - git commit 将暂存区中的内容提交到本地仓库

  • mixed
    不删除工作空间改动代码,撤销commit撤销git add . 操作,回退到工作区
  • soft
    不删除工作空间改动代码,撤销commit不撤销git add . 操作,
    回退到git commit之前,此时处在暂存区。(即执行git add 命令后)
  • hard
    撤销commit,撤销add,删除本地改动代码。
    (三者的改变全都丢失,即代码的修改内容丢失,直接回退到某个版本;因此我们修改过的代码就没了,需要谨慎使用)

我这里是想回退到Test1提交的记录,并且Test1之后的所有代码完全不要了,所以选择了Hard
git如何撤销commit(未push),git,idea,git
步骤5.push回退的代码
IDEA下方选择Terminal——命令行输入git push -f ;强行推送到远程仓库
git如何撤销commit(未push),git,idea,git
步骤6.完成
可见代码提交记录中已经没有Test2提交的记录了,已经回退到Test1版本了
git如何撤销commit(未push),git,idea,git
可以看见, 刚刚的提交已经被撤销了,但是我本地修改的其他代码内容也被覆盖了,直接没有了,所以一定要慎用,如果你此时工作区还有其他功能未提交的代码,就都会被删除文章来源地址https://www.toymoban.com/news/detail-576658.html

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

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

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

相关文章

  • idea中git如何commit,push,pull

    一、安装和配置Git 1.先安装Git应用程序,安装地址:git-scm.com 2.安装IDEA工具,安装完成之后进入,点击 文件-》设置-》输入“Git” ,配置好Git,如下图步骤: ​   3.注册git账号,我这里注册的是Gitee账号 ​ 二、Fork 1.进入码云,找到你所感兴趣的开源代码,点击Fork,意思是建

    2024年02月16日
    浏览(62)
  • 【Git 操作指南】| 撤销远程仓库的 push 以及 git commit 提交

    执行 git log 查看版本日志,找到目标版本。 执行 git reset --soft version numbere ,如 git reset --soft d8cedc98e008e14a35d3faf424764648fb29d55b ,重置为之前提交的版本,接着执行 git log 查看是否已经退回到之前的版本。 (注意, git reset --soft 只改变了 HEAD 的指向位置,本地代码不会发生改变

    2024年02月16日
    浏览(70)
  • idea撤销git commit

    执行commit后,还没执行push时,想要撤销这次的commit,该怎么办? 一、idea操作如下:  找到VCS--Git--Reset HEAD,不同的idea版本位置可能不一样,我的是IntelliJ IDEA 2018.2.2 在To Commit中的HEAD后面加上^,点击Reset即可撤回最近一次的尚未push的commit 解释: Reset Type 有三种: Mixed(默认

    2024年02月03日
    浏览(75)
  • idea git commit之后,撤销commit办法

    问题:idea提代码后,想撤销commit,怎么办捏??(T_T) To Cimmit:里面填写 HEAD~1 点击Reset即可撤销上次commit的内容; HEAD^的意思是上一个版本,也可以写成HEAD~1 如果你进行了2次commit,想都撤回,可以使用HEAD~2或者HEAD^^,以此类推… 首先了解: 工作区 - 暂存区 - 本地仓库 代

    2024年02月06日
    浏览(41)
  • 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日
    浏览(62)
  • IDEA撤销Git 已经push推送的代码

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

    2024年02月15日
    浏览(49)
  • 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)
  • 技巧:jetbrain全家桶系列如何撤销已经提交本地仓库但还没push的commit

    按快捷键 alt+9 打开git窗口 可以看到刚误提交的commit,还好还没push到远程库,还有的救 右键选中前一个commit,选reset 可以看到有4种选择,其中 Soft 和 Mixed 都可以在撤销commit的前提下还会留下文件的修改 但是, Hard 和 Keep ,会撤销commit,但是会把所有文件的修改都去掉,辛辛

    2024年02月05日
    浏览(66)
  • ​如何撤销git commit​

    git commit后,还没执行push时, 如何撤销commit。 git add xxFiles git commit -m \\\"add xxx commit\\\" 一、解决方案 1. git reset --soft HEAD~1 执行此命令,本次的(这里HEAD~1)commit会被撤销,commit所对应的修改会撤回到暂存区当中, 即只是撤销了commit操作 ,比较安全,修改不会丢失 2. git reset --mix

    2024年02月11日
    浏览(40)
  • git commit后,如何进行撤销commit操作

    在我们使用git作为版本控制工具进行代码管理之后,经常性的会碰到一个问题:git commit后,如何撤销commit,下面详细讲一下。 git add newFiles git commit -m \\\'新增xx页面\\\' 执行commit后,还没执行push时,想要撤销这次的commit,该怎么办? 解决方案: 我们可以使用命令:git reset --soft

    2024年02月11日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包