git reset 命令详解 git revert命令详解。
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命令详解。相关推荐
- Git快速入门-git stash 暂存变更,git reset 撤销commit,git revert 回退远程版本库
Git快速入门系列文章 - Git快速入门-安装配置篇 - Git快速入门-常用命令之独奏篇 - Git快速入门-常用命令之交响乐篇 - Git快速入门-git stash 暂存变更,git rese ...
- git reset --hard --soft 与 git revert 的作用
1.git reset --hard --soft 与 git revert 的作用: 文件从暂存区回退到工作区 版本回退 2.git简单的分为三个区域 : 1.工作区(working directo ...
- 【Git】Git 基础命令 ( 查看提交记录 git log | 版本回滚 git reset | 撤销回滚 git reflog )
文章目录 一.查看提交记录 git log 1.查看详细提交记录 2.查看简略提交记录 二.版本回滚 git reset 1.Git 中的版本表示 HEAD~1 2.版本库代码回滚 三.撤销回滚 1. ...
- git reset --hard HEAD与git revert HEAD区别(简单明了!)
一.reset reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区. 二.revert git revert用一个新提交来消除一个历史提交所做的任何修改. git revert 撤销 ...
- git如何查看缓存区文件内容_详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别...
一.可以将git简单的分为三个区域 1.工作区(working directory) 2.暂缓区(stage index) 3.历史记录区(history) 如图: 其中git ...
- Git(8)-- 撤消操作(git commit --amend、git reset 和 git checkout 命令详解)
文章目录 1.撤消操作:`git commit --amend` 实例详解: 2.取消暂存的文件:`git reset` 3.撤消对文件的修改:`git checkout` 超详细 Git 图文版小白 ...
- git reset命令详解
开门见山,先抛出一张图,之后再细讲. 首先,先解释下图中的一些名词. 一.名词解释 1. Working Copy:当前工作目录下的文件,一般指,有修改,没有git add,没有git commi ...
- Git在项目中40个常用命令详解
前言 git对于大家应该都不太陌生,熟练使用git已经成为程序员的一项基本技能,尽管在工作中有诸如 Sourcetree这样牛X的客户端工具,使得合并代码变的很方便.但找工作面试和一些需彰显个人实力的 ...
- Git 详解及常用命令
引言 学习内容:Git .GitHub .Gitee码云 .GitLab的使用 Git相关内容 Git介绍 分布式版本控制工具 VS 集中式版本控制工具 Git安装 Git命令 git的常用命令 Gi ...
- Git撤销修改场景及对应指令(checkout、reset、revert)详解
场景一:撤销工作区的修改(未执行git add) 指令:git checkout [目录或文件名] 实例: 1.修改了test.txt文档,git status 会出现如下提示: 2.git chec ...
最新文章
- Optional java 用法_Java8 Optional 的正确使用方式
- 人工智能不是计算机领域能学么,人工智能的几个热门领域简介及作用
- reverse-for-the-holy-grail-350逆向寒假生涯(23/100)
- [Python学习] 专题二.条件语句和循环语句的基础知识
- harfbuzz安装位置 linux_最新Ubuntu 20.04 LTS已发布,在Win10中该如何进行安装和使用?...
- 第二波 编程资料免费领,前后端、移动端都有
- iOSQuart2D绘图之UIImage简单使用
- html marquee初始空白_前端开发必会的HTML/CSS硬知识
- RAID6结构原理详解
- pringMVC上传图片
- android版usb转网线驱动,usb网线转换器驱动下载
- 大华条码秤开发之-快捷键传输
- Linux安装与配置SSH服务
- 易语言斗鱼弹幕助手源码
- 《爱情公寓》电影,让我十年的情怀,一瞬间都喂了狗
- C语言打印某一年的日历 (2*6格式)
- 赛效:如何在线更改图片格式 图片格式在线转换方法介绍
- 隐函数存在定理1的几何解释
- 移动广告平台KeyMob:整合多家主流手机广告平台
- 科大讯飞离线语音命令词识别的使用说明