1、git reset --hard --soft 与 git revert 的作用:

  • 文件从暂存区回退到工作区
  • 版本回退

2、git简单的分为三个区域 :

  • 1、工作区(working directory)
  • 2、暂缓区(stage index)
  • 3、历史记录区(history)

git reset --hard xxx

  • hard (修改版本库,修改暂存区,修改工作区)

–hard HEAD~1 (或是版本号)意为将版本库回退1个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本

  • HEAD 就是当前活跃分支的游标。形象的记忆就是:你现在在哪儿,HEAD 就指向哪儿,所以 Git 才知道你在那儿! 不过 HEAD
    并非只能指向分支的最顶端(时间节点距今最近的那个),实际上它可以指向任何一个节点,它就是 Git 内部用来追踪当前位置的东东。

git reset --soft xxx

  • soft (修改版本库,保留暂存区,保留工作区)

–soft HEAD~1 意为将版本库软回退1个版本,所谓软回退表示将本地版本库的头指针全部重置到指定版本,且将这次提交之后的所有变更都移动到暂存区。

git revert xxx

  • revert
    – git revert 也是撤销命令,区别在于reset是指向原地或者向前移动指针,git revert是创建一个commit来覆盖当前的commit,指针向后移动。

git revert和git reset的区别

git revert与git reset最大的不同是,git revert 仅仅是撤销某次提交,而git reset会将撤销点之后的操作都回退到暂存区中。

1、git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。

2、在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。

因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。

3、git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

附:不得不提的git的其它删除命令(类似于Linux的命令):

  • git rm --cached readme.txt 只从缓存区中删除readme.txt,保留物理文件
  • git rm readme.txt 不但从缓存区中删除,同时删除物理文件
  • git mv a.txt b.txt 把a.txt改名为b.txt

git reset --hard --soft 与 git revert 的作用相关推荐

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

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

  2. git reset 命令详解 git revert命令详解。

    git reset 命令详解 reset命令 介绍 参数 补救 git revert命令 revert说明 举例: 命令 reset命令 介绍 git reset 命令格式为: git reset [ ...

  3. git reset hard/soft/mixed区别

    git reset hard/soft/mixed区别 git reset --soft git reset --mixed或者 git reset (默认是git reset --mixed) gi ...

  4. linux中如何撤销上次命令,使用git reset命令撤销上次Git提交

    本文介绍如何撤消上一次的Git提交的方法. 前言 有时,在使用Git时,您可能要撤消最新的提交.提交是给定时间的Git存储库的快照,Git有一个称为HEAD的引用变量,它指向当前工作分支中的最新提交, ...

  5. Whats the difference between git reset --mixed, --soft, and --hard?

    https://stackoverflow.com/questions/3528245/whats-the-difference-between-git-reset-mixed-soft-and-ha ...

  6. git reset --hard HEAD与git revert HEAD区别(简单明了!)

    一.reset reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区. 二.revert git revert用一个新提交来消除一个历史提交所做的任何修改. git revert 撤销 ...

  7. 【Git】Git 基础命令 ( 查看提交记录 git log | 版本回滚 git reset | 撤销回滚 git reflog )

    文章目录 一.查看提交记录 git log 1.查看详细提交记录 2.查看简略提交记录 二.版本回滚 git reset 1.Git 中的版本表示 HEAD~1 2.版本库代码回滚 三.撤销回滚 1. ...

  8. git reset revert 回退回滚取消提交返回上一版本

    总有一天你会遇到下面的问题. (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚. 这些开发中很常见 ...

  9. git如何查看缓存区文件内容_详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别...

    一.可以将git简单的分为三个区域   1.工作区(working directory)    2.暂缓区(stage index)    3.历史记录区(history)    如图: 其中git ...

最新文章

  1. Kick Start 2019 Round D
  2. HttpClient的超时用法小记
  3. SAP Spartacus scss 变量--cx-spatial-base赋值的地方
  4. java获取文件地址吗_java获取文件所在服务器位置路径
  5. python作用域(scope)(三分钟读懂)
  6. 初识二进制2:指令系统
  7. (二十一)访问者模式-代码实现
  8. Int与byte[]互转详解分析
  9. python实现匿名发邮件_Python 实现邮件发送
  10. QT 调用windows socket
  11. 每年10万被动收入目标分解 | 进击
  12. win11安装mysql8.0.29最新压缩包版
  13. 为网站配置免费的HTTPS证书 2-4
  14. 超分辨率 | 综述!使用深度学习来实现图像超分辨率
  15. 《K3 WISE常用数据表整理》
  16. 【MyBatis】mybatis分页插件
  17. position 属性
  18. swiper修改轮播图下面小圆圈样式
  19. docker内应用连接宿主机mysql
  20. 微信小程序wx.previewImage预览图片

热门文章

  1. Java 基本数据类型以及封装类
  2. prefetch 和preload_Preload和Prefetch以及前端项目中的配置
  3. linux firefox xvfb,ubuntu – 尝试配置Xvfb无头地运行Firefox
  4. Oracle_多表查询
  5. matlab 将图形另存时,在文件名字符串中添加参数,总是保存出错,无效文件名
  6. c语言输入带空格的数字组,【C语言】输入带空格的数字字符串
  7. 【行情采集】解析JS 0.5秒获取版块(可分行业、概念、地域)今日、5日内、10日内资金流向(送代码)
  8. 华为云 绑定/更换证书
  9. 基于Java实现简单亚马逊爬虫
  10. 湖北省211大学计算机分数线,湖北省最好的20所大学?湖北省7所211大学名单及排名(附录取分数线)...