Git学习之回退撤销操作

Git是一个版本控制工具,所以灵活的回退或者撤销操作是必不可少的, 这里你将学到几个将操作撤销,或者将文件回滚的操作。但是注意,有一些操作时时不能撤销。下面我们先认识下总体的操作示意图:

由上图我们可以知道,总体的操作汇总:

  • git add命令用于把工作目录的文件放入暂存区域
  • git commit 命令用于把暂存区域的文件提交到 Git 仓库
  • git reset 命令用于把 Git 仓库的文件还原到暂存区域
  • git checkout命令用于把暂存区域的文件还原到工作目录

这里我们学习的重点时resetcheckout命令

1.首先是reset命令

reset命令有三个选项,语法:git reset <选项> HEAD/快照ID<~>,其中<快照ID/HEAD> 默认是HEAD,~表示回退的版本数,也可以表达~N,

  • --soft
  • --mixd默认,不加选项就是mixd
  • --hard

    手册里是这样描述的:

  1. 如果你是使用--soft选项,仅仅是改变HEAD指针的指向,实际上是撤销上一次commit,暂存区和工作区都没有改变
  2. 如果你是使用默认选项,那么HEAD指针会指向上一个快照,然后将这个上个快照复制到暂存区,暂存区的内容会被覆盖,工作区不会改变。
  3. 如果你使用–hard选项,那么这个操作会改变HEAD指针指向上一个快照,同时将上一个快照的内容复制到暂存区和工作区,暂存区和工作区原先的内容会被覆盖,这带有一点的危险性,因为覆盖的工作区文件不可撤销。

初次之外reset还有以下功能:

  • 回滚到指定的快照 只需要将HEAD换成你想回退的快照ID,语法:git reset 指定的快照ID
  • 回滚某个文件,这个操作并不会改变HEAD的指向,因为你只是回滚快照的一部分内容,语法:git reset 快照 文件名/路径
  • 还可以向前滚,直选将快照换成你想滚到的快照,语法:git reset 快照

如果操作失误,错误的使用git reset --hard回滚,使得工作目录改变了,可以使用git reflog,看到相应的快照,可以回滚回去。

2. 其次是checkout命令

这个命令有两个功能:一个是撤消对文件的修改;一个是切换分支,分支后面会说到,这里我们先了解它的撤消对文件的修改

它实际上将暂存区的文件内容覆盖到工作目录下

我们用diff命令查看下差别:

我们用checkout从暂存区回滚到工作区:

可以看到已经回退到暂存区保存的状态

参考于小甲鱼博客和Git手册,用于学习的目的,水平有限,有错误的地方可以联系邮箱:breeziness123@Outlool.com
一缕清风

Git学习之回退撤销相关推荐

  1. Git学习之旅--撤销与删除

    Git学习之旅–撤销与删除 在使用Git 过程中难免会出现各种错误,就让我们一起学习怎么应对吧 一般犯错可以恢复的有三种情况: 用我们的一个文件 file2.txt 举例 一.未添加到暂存区 (此次演 ...

  2. GIT学习----第六节:撤销修改

    学习目的 当你在工作区修改了,但是你不想要修改的部分时,如何撤销? 当你将工作区的修改添加到暂存区,如何撤销? 当你将修改提交到分支,如何撤销? 撤销工作区修改 修改前 $ git diff $ ca ...

  3. git commit之后,回退撤销commit

    在commit之后,发现有不需要提交的文件被提交上去了,好在还没有push到远端,需要撤回重新提交. 如果是用的是Sourcetree的话,打开Sourcetree操作如下: 找到提交之前的版本的记录 ...

  4. Git学习-Git时光机之版本回退(二)

    Git,是Linus花了两周时间用C写的一个分布式版本控制系统.牛人该怎么定义? 零.结论先行 倒叙总结一下: HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git ...

  5. Git 回退撤销相关命令,毫无保留,都在这里了!!!

    Git 回退撤销相关命令 # 恢复暂存区的指定文件到工作区 # 即让 工作区的文件 和 暂存区的保持一致,回到初始状态 git checkout [file]# 恢复某个commit的指定文件到暂存区 ...

  6. Git学习系列之Git基本操作提交项目(图文详解)

    前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Ecl ...

  7. Mac~git学习和应用需要注意的几个点

    Git学习推荐网站:廖雪峰-Git教程 - 廖雪峰的官方网站,通俗易懂,简单粗暴,就是平俗的语言,好懂.粗暴的那种 git学习进阶-国外经典git学习网站:Git - Book 目录 1. 全局配置和 ...

  8. 面向任务的 Git 学习法

    前言 对于 Git 学习而言,通常枯燥的理论学习并不能帮助我们快速掌握它的使用,需要我们结合实践,才能更好地学会利用 Git 进行多人协作开发.本文就以任务的形式,来介绍 Git 命令的使用,希望在进 ...

  9. Git学习笔记:修改

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

最新文章

  1. RxJava使用(二)filter 操作符
  2. Go 语言 bytes.buffer write 相关操作
  3. linux环境安装部署mark
  4. 1121 if条件语句练习--输入年月日判断执行
  5. VTK:Picking之AreaPicking
  6. spring源码阅读(1/4) - Bean生成
  7. Visual Studio 2017 新功能(上)
  8. 演示:Linux工程环境应用实训(防火墙、NAT、静态路由)详细配步骤
  9. 修改IntelliJ IDEA包层级结构显示方式
  10. 深入浅出设计模式(一):单例模式
  11. 『paddle』paddleclas 学习笔记:图像识别
  12. 软件设计 -- 数据流图,数据字典,ER图
  13. java lang arithmetic_java.lang.ArithmeticException: Rounding necessary
  14. 详解Oracle架构、原理、进程,学会世间再无复杂架构
  15. VS配色方案你值得拥有
  16. jis计算机基础知识讲课,计算机基础知识——中文输入法教学教案.ppt
  17. php字符串分隔函数,php字符串分割函数的简单示例
  18. 【3d地图】vue中使用echarts geo3D
  19. 2021年中国内地城市地铁客流量排行榜:北上广深日均客运量超500万人次,深圳客流强度最大(附年榜TOP43详单)
  20. Javadoc(文档注释)详解

热门文章

  1. 2032:【例4.18】分解质因数
  2. FireStart教程:基于SharePoint的出差报销流程五
  3. APP设计邀请功能,用邀请链接还是邀请码比较好呢?
  4. 涉密计算机不得接入互联网等公共信息网络,在涉密场所使用的与国际互联网或者其他公共网络连接的计算机不得安装视频、音频等输入装置 - 作业在线问答...
  5. java ews appointment_EWS-JAVA-API的使用
  6. 如何实现app直播源代码,通过HLS进行直播观看
  7. 山东田野稻花香 国稻种芯·中国水稻节:威海荣成引种的旱稻
  8. Java实习生常规技术面试题每日十题Java基础(五)
  9. 赴日技术签证全攻略!
  10. ​2022年个税专项附加扣除,开始确认,​拿到软考证书即可抵扣