git reset --hard --soft 与 git revert 的作用
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 的作用相关推荐
- Git快速入门-git stash 暂存变更,git reset 撤销commit,git revert 回退远程版本库
Git快速入门系列文章 - Git快速入门-安装配置篇 - Git快速入门-常用命令之独奏篇 - Git快速入门-常用命令之交响乐篇 - Git快速入门-git stash 暂存变更,git rese ...
- git reset 命令详解 git revert命令详解。
git reset 命令详解 reset命令 介绍 参数 补救 git revert命令 revert说明 举例: 命令 reset命令 介绍 git reset 命令格式为: git reset [ ...
- git reset hard/soft/mixed区别
git reset hard/soft/mixed区别 git reset --soft git reset --mixed或者 git reset (默认是git reset --mixed) gi ...
- linux中如何撤销上次命令,使用git reset命令撤销上次Git提交
本文介绍如何撤消上一次的Git提交的方法. 前言 有时,在使用Git时,您可能要撤消最新的提交.提交是给定时间的Git存储库的快照,Git有一个称为HEAD的引用变量,它指向当前工作分支中的最新提交, ...
- 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 ...
- git reset --hard HEAD与git revert HEAD区别(简单明了!)
一.reset reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区. 二.revert git revert用一个新提交来消除一个历史提交所做的任何修改. git revert 撤销 ...
- 【Git】Git 基础命令 ( 查看提交记录 git log | 版本回滚 git reset | 撤销回滚 git reflog )
文章目录 一.查看提交记录 git log 1.查看详细提交记录 2.查看简略提交记录 二.版本回滚 git reset 1.Git 中的版本表示 HEAD~1 2.版本库代码回滚 三.撤销回滚 1. ...
- git reset revert 回退回滚取消提交返回上一版本
总有一天你会遇到下面的问题. (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚. 这些开发中很常见 ...
- git如何查看缓存区文件内容_详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别...
一.可以将git简单的分为三个区域 1.工作区(working directory) 2.暂缓区(stage index) 3.历史记录区(history) 如图: 其中git ...
最新文章
- Kick Start 2019 Round D
- HttpClient的超时用法小记
- SAP Spartacus scss 变量--cx-spatial-base赋值的地方
- java获取文件地址吗_java获取文件所在服务器位置路径
- python作用域(scope)(三分钟读懂)
- 初识二进制2:指令系统
- (二十一)访问者模式-代码实现
- Int与byte[]互转详解分析
- python实现匿名发邮件_Python 实现邮件发送
- QT 调用windows socket
- 每年10万被动收入目标分解 | 进击
- win11安装mysql8.0.29最新压缩包版
- 为网站配置免费的HTTPS证书 2-4
- 超分辨率 | 综述!使用深度学习来实现图像超分辨率
- 《K3 WISE常用数据表整理》
- 【MyBatis】mybatis分页插件
- position 属性
- swiper修改轮播图下面小圆圈样式
- docker内应用连接宿主机mysql
- 微信小程序wx.previewImage预览图片
热门文章
- Java 基本数据类型以及封装类
- prefetch 和preload_Preload和Prefetch以及前端项目中的配置
- linux firefox xvfb,ubuntu – 尝试配置Xvfb无头地运行Firefox
- Oracle_多表查询
- matlab 将图形另存时,在文件名字符串中添加参数,总是保存出错,无效文件名
- c语言输入带空格的数字组,【C语言】输入带空格的数字字符串
- 【行情采集】解析JS 0.5秒获取版块(可分行业、概念、地域)今日、5日内、10日内资金流向(送代码)
- 华为云 绑定/更换证书
- 基于Java实现简单亚马逊爬虫
- 湖北省211大学计算机分数线,湖北省最好的20所大学?湖北省7所211大学名单及排名(附录取分数线)...