撤销commit一般用git reset ,语法如下:

git reset [ --mixed | --soft | --hard] [<commit ID>]

1.使用参数--mixed(默认参数),如git reset --mixed <commit ID>或git reset <commit ID>

撤销git commit,撤销git add,保留编辑器改动代码

2.使用参数--soft,如git reset --soft<commit ID>

撤销git commit,不撤销git add,保留编辑器改动代码

3.使用参数--hard,如git reset --hard <commit ID>——此方式非常暴力,全部撤销,慎用

撤销git commit,撤销git add,删除编辑器改动代码

开始撤销commit的示例:

输入git log,我们可以看到最近的3次提交,最近一次提交是test3,最早的一次是test1,其中一大串黄色的字母commit id(版本号)

如果嫌输出信息太多,可加上--pretty=oneline参数,即

git log --pretty=oneline

接下来,按下键盘上的字母q退出git日志,准备进行撤销commit

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交commit id,上一个版本就是HEAD^(或者HEAD~1),上上一个版本就是HEAD^^(或者HEAD~2),同理往上N个版本写N个^不太现实,我们写成HEAD~100。

现在,我们要把当前版本test3上一个版本test2,就可以使用git reset命令:git reset --hard HEAD^,再查看日志,发现已经剩下2个commit版本了

git reset --hard HEAD^

最新的那个版本test3已经看不到了,此时你想起有一行代码写得很好,想回到test3版本看下,怎么做?

办法其实还是有的,只要上面的命令行窗口还没有被关掉,记录还是在,使用命令git reset --hard commit_id可以回退到指定的版本,比如当前例子,我们找到那个test3的commit id是e09af7ae711e2a79c15144c1e792fb2e27d201ff,然后输入下面指令就回来了

git reset --hard e09af7ae711e2a79c15144c1e792fb2e27d201ff

版本号可以不用写全,输入前4位或更多也是可以,Git会自动去找,不能只写前一两位,因为Git可能会找到多个版本号。比如,看完test3版本的代码后,现在想回退到最初test1版本,我们找到那个test1的commit id是ab7b0c2b6e10a20d524156a81f6d4bc15a4ea7f3,然后输入下面指令就回来了

git reset --hard ab7b

最后在Git中,总是有后悔药可以吃的,Git提供了一个命令git reflog用来记录你的每一次命令,通过它可以查到每个commit id,方便你前进或者回退到指定的版本

文章来源:https://www.cnblogs.com/PeunZhang/p/11649910.html

git如何撤销未push的commit相关推荐

  1. git撤销未提交的commit

    撤销未提交的commit: git reset --mixed HEAD^ --------不删除工作空间代码,撤销git commit和git add. git reset --hard HEAD^ ...

  2. git如何撤销未提交的更改

    本文介绍了如何将未提交到暂存区的代码进行撤销 撤销指令 git restore <file>... 后面可以指定路径或者文件.例如: #撤销当前文件夹的修改,可以这样写: git rest ...

  3. git 撤销全部的commit_git如何撤销commit的方法(未push)

    撤销commit一般用git reset ,语法如下: git reset [ --mixed | --soft | --hard] [] 1.使用参数--mixed(默认参数),如git reset ...

  4. IDEA git 代码已经commit,但未 push推送,如何撤销提交缓存区代码

    记录自己提交代码时,手滑错误commit了多余的文件,但未push到云端,想要撤回整个commit的操作: idea菜单栏上的 VCS–>Git–>Reset HEAD- 出现如下弹框: ...

  5. 文件在IDEA中已进行Git的Commit操作,使其从暂存区提交到本地仓库,但是未Push到远程仓库,此时进行Pull操作出现代码冲突

    问题描述:文件在IDEA中已进行Git的Commit操作,使其从暂存区提交到本地仓库,但是未Push到远程仓库,此时进行Pull操作出现代码冲突 解决方法:出现上述情况时,我们要先将文件从本地仓库中拉 ...

  6. git分支合并、撤销;git修改已push的commit信息; git 撤销操作;

    git分支合并 1.分支代码提交 2.git branch 查询本地分支 3.git checkout 分支名1 切换分支到需要合并的分支上 4.git merge 分支名2  //选择要合并到 分支 ...

  7. git撤回已经commit未push的操作

    一.使用IntelliJ idea VSC => Git => reset head => 退回到上次commit => 退回到第2次提交之前 => 退回到指定commi ...

  8. [Git]如何撤销上次commit

    有的时候我们将某次修改commit了之后,突然想在其中某个文件中加点注释或去掉一些调试的log,但是又不想增加commit记录,那该怎么做呢? reset参数 -q, --quiet 安静模式,只报告 ...

  9. Git快速入门-git stash 暂存变更,git reset 撤销commit,git revert 回退远程版本库

    Git快速入门系列文章 - Git快速入门-安装配置篇 - Git快速入门-常用命令之独奏篇 - Git快速入门-常用命令之交响乐篇 - Git快速入门-git stash 暂存变更,git rese ...

最新文章

  1. 如何读取Excel表格中不同sheet表的同一位置单元格数据,并绘制条形图呢?
  2. Python爬虫对json数据解析爬取
  3. console 立即输出 调试_Javascript调试利器console的使用
  4. 爬虫界又出神器|一款比selenium更高效的利器
  5. 觅凤c语言教程,C语言程序设计教程 第1章.ppt
  6. 【java8新特性】——方法引用(四)
  7. FTP命令详解(含操作实例)
  8. Cadence PSpice 仿真3: 电容器充放电瞬态仿真图文教程
  9. Geometric tampering estimation by means of a sift-based forensic analysis论文阅读
  10. 高德地图样式主题设置
  11. 富文本框TinyMCE4.8上传本地图片基本配置(前端篇)
  12. HTML中添加超链接、音频标签、视频标签、内嵌框架标签
  13. 荣耀手机用什么蓝牙耳机好?适合荣耀手机的蓝牙耳机推荐
  14. python24小时12小时转换_python将时间从12小时转换为24小时格式
  15. 智能家居论文文献_智能家居控制系统界面设计结论与参考文献
  16. 【PDN仿真笔记6-使用Sigrity PowerSI进行PDN仿真的方法1】
  17. 【重磅】全球AI芯片排行榜发布 解读入围的七家中国公司
  18. O_ALV CL_SALV_TABLE, ALV 类的用法
  19. 2021年线下“领航杯” MISC-《sqli》解题WP
  20. 面试题(1)最全BAT面试精华汇总

热门文章

  1. 补充下3月面试题(好未来、腾讯音乐、小药药)
  2. android自定义标尺,Android自定义标尺滑动选择值效果
  3. 微分方程数值解法(PID仿真用一阶被控对象库PLC算法实现)
  4. True Type 文件格式规范
  5. 实现相册功能 java_javaWEB实现相册管理的简单功能
  6. 如何写出自媒体10W+爆文?
  7. 计算机网络,操作系统,微机原理,uml,java都非常重要
  8. promise获取所有文件路径_python使用os.listdir和os.walk获得文件的路径
  9. U-BOOT小全(二)
  10. excel单元格内换行