Git---撤销add、commit、push操作

  1. 本地代码修改后没有任何操作,只想撤回到修改之前,即最后一次提交之后的代码
//git checkout -- 要撤销的文件
git checkout -- build.gradle   //表示撤销对build.gradle文件的修改
  1. 本地代码修改后作了 add 操作,想撤回此次 add 操作
    git status 先看一下add 中的文件,然后
 git reset HEAD               //如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
 git reset HEAD XXX/XXX.java  //就是对某个文件进行撤销了
  1. 本地代码修改后作了 git add 和 git commit 操作,想撤回到 git add 之前的代码
git reset commit_id    //撤销commit和add操作,不删除工作空间改动代码
git reset --hard commit_id  //撤销commit和add操作,代码变成上次commit后的代码,也就是删除工作空间改动代码。
git reset --soft HEAD^  //撤销commit,但不撤销add操作,不删除工作空间改动代码
git reset  HEAD^   //撤销commit和add操作,即回到上次commit后,不删除工作空间改动代码
git reset --mixed HEAD^   //和上方的等同,两个表示一样的结果
git reset --hard HEAD^  //撤销commit和add操作,删除工作空间改动代码

上边HEAD^的意思是上一个版本,也可以写成HEAD~1 ,如果你进行了2次commit,想都撤回,可以使用HEAD~2

另外,如果commit时注释写错了,只想改下注释,可以不用回退在重新commit,只需

git commit --amend   //此时会进入默认vim编辑器,修改注释完毕后保存就好了。

vim编辑器使用指南参考 git的常用命令及vim 使用教程

此时会进入默认vim编辑器,修改注释完毕后保存就好了。

  1. 如果要是 提交了以后,可以使用 git revert:
    还原已经提交的修改,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交。
git revert HEAD       //撤销本次的 commit,即重置本次提交回到上一次提交之后
git revert HEAD^      //撤销前一次的 commit
git revert commit-id   // 撤销指定的版本,撤销也会作为一次提交进行保存

git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 其实使用git已经有两年多时间了,但是对Git的概念一直懵懵懂懂,平时常用的命令就那么几个,而且大部分的时候都是直...
    Claire_wu阅读 613评论 0 5
  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 2,435评论 0 1
  • 一、基本概念: 注:对于git的分布式概念及其优点,不重复说明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大厂offer阅读 1,456评论 0 3
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,935评论 0 9
  • 关于git撤回、撤销代码的几种方式,撤回add,撤回commit,撤回push,git reset 和 git r...
    孙掌门阅读 3,277评论 0 4