git(二)

错误回退怎么办
场景:
在本地做完修改之后Git提交到了本地,但没有push到远程,此时远程仓库里的最新版本为1.2.2,远程的次新版本为1.2.1,本地的最新版本为1.2.3,

1579153858(1).jpg

此时,需要将代码回退到远程的1.2.1版本,做一下紧急更新,很自然的,就直接reset到需要回退的地方,且选了hard,也就是所有的本地更新都会丢失,确认之后再pull或者CtrlZ都无法挽回hard reset操作了


image.png

image.png

这时候我们想回到1.2.3版本要怎么做呢?

1、git reflog :他记录了我们执行过的所有命令,在下图红框位置上显示我们在这个hash版本中进行了test的提交


image.png

2、git reset --hard +上步搜索到的hash值


image.png

执行成功后发现,1.2.3版本回来了!


image.png

一点点原理介绍,也是git回退这么快的原因:
1、git会将提交的所有版本都记录下来,并为每个版本分配一个hashId
2、Git在内部有一个指向当前版本的指针,当进行版本切换的时候仅仅是把指针指向了不同的位置


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...
    神刀阅读 3,799评论 0 10
  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 2,430评论 0 1
  • Git基础 通过上一篇Git:一文章,我们大体了解了创建仓库,提交代码等相关流程,本篇重点介绍git相关的基础操作...
    恒源宾馆阅读 455评论 0 1
  • git 自定义简写 $ git config alias.st status 注意:除非特殊原因,最好不要设置别...
    ElvisSun阅读 348评论 0 0
  • 简介 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 与常用的版本控制工具 ...
    闽越布衣阅读 2,776评论 0 18