git 撤销

git 撤销工作区的修改

git checkout -- <file name>

把 <file name> 文件在工作区的修改全部撤销,这里有两种情况:

  • 一种是 <file name> 文件自内容修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

  • 一种是 <file name> 文件已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

让 <file name> 这个文件回到最近一次 git commit 或 git add 时的状态。

git reset 撤销:版本回退

  • git reset --hard <版本号>

    • 缓存区和工作目录都不会被改变
      git reset --soft
      
    • 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
      git reset --mixed
      
    • 缓存区和工作目录都同步到你指定的提交
      git reset --hard
      

    eg:

    • 撤销最新的提交,回退到上次提交
      git reset --hard HEAD^
      
    • 撤销最新的两次提交,回退到上上次提交
      git reset --hard HEAD~2
      
    • 撤销到 commit_id 之前的提交,回退到 commit_id 的提交
      git reset --hard <版本号>
      
  • git reset --xxx

    • 撤销操作时,将你的改动从缓存区中移除,但是这些改动还留在工作目录中
      git reset --mixed HEAD^
      
    • 撤销操作时,完全舍弃你的改动
      git reset --hard HEAD^
      
    • 撤销操作时,你的改动还保留在你的缓存区和工作目录
      git reset --soft HEAD^
      

    [图片上传失败...(image-edfe33-1554864437960)]

  • git 撤销已经 push 到远端的 commit

    git reset --hard <版本号>  
    // 为了覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数--force
    git push origin <分支名> --force
    

git 查看历史

查看提交历史

// 查看提交历史,以便回退到某个版本
git log

查看命令历史

// 查看命令历史,以便确定回到未来的某个版本【重返未来】
git reflog
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 现在很多女人,尤其是漂亮的女人都信奉男人征服世界,女人征服男人来征服世界!其实都错了,一个能征服世界的男人在他眼里...
    风吹咪了眼阅读 994评论 0 0
  • 生活节奏越来越快,生活压力也越来越大。人们每天奔波在家和公司之间,两点一线。没有时间休闲,没有兴趣娱乐。 现代生活...
    宜宁静以致远阅读 311评论 0 1
  • 民间美食河间饺子粥 齐凤池 我老家沧州河间有一种家常饭叫饺子粥。我小的时候,在老家经常吃。平时不过年不过节的,赶上...
    唐山凤池阅读 1,128评论 0 4