git reset 命令详解

  • reset命令
    • 介绍
    • 参数
    • 补救
  • git revert命令
    • revert说明
    • 举例:
    • 命令

reset命令

介绍

git reset 命令格式为:
git reset [ --soft | --mixed | --hard ] [< commitid >]
在git的这些命令中git reset是最长常用的,也是最危险的最容易被误用的。它的主要参数是:soft,mixed,hard它们告诉git,当执行reset是,要对index和working copy做什么。

参数

soft:
–soft参数只将其它的commit重置到你选定的HEAD,index和working copy中的数据不变。
mixed:
–mixed参数是将HEAD和index重置到你选定的HEAD,而working copy不变。
hard:
–hard是将HEAD,index,working copy同时改变到你规定的commit上。
注意:commitid是每次你要回退到的那个commit的id,它可以通过git log获取。

补救

如果我们通过git reset --hard将版本回退到之前的版本了,那我们还是可以补救的,先通过git reflog命令,找到要回退的commitId,然后通过命令:git reset --hard commitId来恢复。

git revert命令

revert说明

  由于某些文章说的说法可能不是很明确,所以导致一部分小袁同志们对revert有一定的误解,一开始我也很难理解revert到底是干什么的。毕竟用于版本回退的都已经有git reset了,为什么还要再出一个git revert?
  其实呢,revert它不会想reset一样”带你回到“那个你指定的提交,并假装那个提交之后的后续提交都没有发生。它是用于单个提交的逻辑否定 -并且单独提交- 保留后续提交

举例:

比如:
我们有一个文件里面写了:

提交A
提交B
提交C
提交D

第一次我们把它改成:

提交A
2提交
提交C
提交D

并提交 假设commitId是tijiao1

第二次我们把它改成:

提交A
2提交
提交C
4提交

并提交 假设commitId是tijiao2

之后我们进行revert:
git revert tijiao1
此时结果会变成:

提交A
提交B
提交C
4提交

所以我们要知道revert是只撤回指定的提交,并保留后续的提交。
如果你想让版本直接回退到tijiao1并且取消后续所有提交那你应该使用reset。

命令

revert分两种,因为commit分两种。
一种是常规的 commit,也就是使用 git commit 提交的 commit;
另一种是 merge commit,在使用 git merge 合并两个分支之后,你将会得到一个新的 merge commit,merge commit 和普通 commit 的不同之处在于 merge commit 包含两个 parent commit,代表该 merge commit 是从哪两个 commit 合并过来的。
常规的revert:

//撤回指定的任意提交
git revert commitId
//撤回最后一次提交
git revert HEAD
//撤回倒数第二次提交
git revert HEAD^

merge的revert:加上-m表示撤回哪一个分支的。它的数据是1或2.

//保留第一个分支为主线
git revert -m 1 commitId

git reset 命令详解 git revert命令详解。相关推荐

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

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

  2. git reset --hard --soft 与 git revert 的作用

    1.git reset --hard --soft 与 git revert 的作用: 文件从暂存区回退到工作区 版本回退 2.git简单的分为三个区域 : 1.工作区(working directo ...

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

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

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

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

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

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

  6. Git(8)-- 撤消操作(git commit --amend、git reset 和 git checkout 命令详解)

    文章目录 1.撤消操作:`git commit --amend` 实例详解: 2.取消暂存的文件:`git reset` 3.撤消对文件的修改:`git checkout` 超详细 Git 图文版小白 ...

  7. git reset命令详解

    开门见山,先抛出一张图,之后再细讲.  首先,先解释下图中的一些名词.  一.名词解释 1. Working Copy:当前工作目录下的文件,一般指,有修改,没有git add,没有git commi ...

  8. Git在项目中40个常用命令详解

    前言 git对于大家应该都不太陌生,熟练使用git已经成为程序员的一项基本技能,尽管在工作中有诸如 Sourcetree这样牛X的客户端工具,使得合并代码变的很方便.但找工作面试和一些需彰显个人实力的 ...

  9. Git 详解及常用命令

    引言 学习内容:Git .GitHub .Gitee码云 .GitLab的使用 Git相关内容 Git介绍 分布式版本控制工具 VS 集中式版本控制工具 Git安装 Git命令 git的常用命令 Gi ...

  10. Git撤销修改场景及对应指令(checkout、reset、revert)详解

    场景一:撤销工作区的修改(未执行git add) 指令:git checkout [目录或文件名] 实例: 1.修改了test.txt文档,git status 会出现如下提示: 2.git chec ...

最新文章

  1. Optional java 用法_Java8 Optional 的正确使用方式
  2. 人工智能不是计算机领域能学么,人工智能的几个热门领域简介及作用
  3. reverse-for-the-holy-grail-350逆向寒假生涯(23/100)
  4. [Python学习] 专题二.条件语句和循环语句的基础知识
  5. harfbuzz安装位置 linux_最新Ubuntu 20.04 LTS已发布,在Win10中该如何进行安装和使用?...
  6. 第二波 编程资料免费领,前后端、移动端都有
  7. iOSQuart2D绘图之UIImage简单使用
  8. html marquee初始空白_前端开发必会的HTML/CSS硬知识
  9. RAID6结构原理详解
  10. pringMVC上传图片
  11. android版usb转网线驱动,usb网线转换器驱动下载
  12. 大华条码秤开发之-快捷键传输
  13. Linux安装与配置SSH服务
  14. 易语言斗鱼弹幕助手源码
  15. 《爱情公寓》电影,让我十年的情怀,一瞬间都喂了狗
  16. C语言打印某一年的日历 (2*6格式)
  17. 赛效:如何在线更改图片格式 图片格式在线转换方法介绍
  18. 隐函数存在定理1的几何解释
  19. 移动广告平台KeyMob:整合多家主流手机广告平台
  20. 科大讯飞离线语音命令词识别的使用说明

热门文章

  1. 图片转换word格式用什么软件好
  2. mysql5.7插入数据_mysql5.7的基本使用
  3. Web API 约定
  4. Log4j2惊现大漏洞? 开源维护者越来越难?
  5. 截图录像软件 FastStone_Capture
  6. xmc4300 ethercat 学习之路
  7. 「新兴技术和创新」创新网络
  8. Unreal Engine 4 卡通轮廓线(Toon Outlines)教程 之 后期处理法(Post Process Outlines)
  9. Navicat for SQL Server 安装的步骤是这样的
  10. 树莓派小车#1 - 硬件采购和简单运动控制系统