git版本回退

我们在gitee中提交了三次代码分别的为:

version1

Git is a version control system.
Git is free software.

version2
Git is a distributed version control system.
Git is free software.

version3
Git is a distributed version control system.
Git is free software distributed under the GPL.

由于修改的版本比较多,所以我们需要查看一下我们到底修改大代码有哪些版本

git log

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yypGRMcn-1650620534634)(/Users/lifuwei/Library/Application Support/typora-user-images/image-20220422103428201.png)]

通过以上我们可以看出,在当前分支(f)我们提交过三次代码

git log命令显示从最近到最远的提交日志,我们在这里可以看到有三次提交,最近的一次提交时version3,上一次的提交是version2,最早一次的提交时version1.

当然如果我们感觉输出的信息太多,看得眼花缭乱,我们可以在后面加上–pretty=oneline参数

即:git log --pretty=online

增加这个参数的意思就是让版本信息可以比较简介的输出并且每一个版本只在一行(如下图所示)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-impY93Yc-1650620534636)(/Users/lifuwei/Library/Application Support/typora-user-images/image-20220422103945719.png)]

这里我们来解释一下 commit id(就是上图黄色的一串字符)为什么会有这么一串十六进制的数字来表示id呢?这是因为git是分布式的版本控制系统,后面我们要研究多人在同一个版本库里工作,如果用简简单单的1、2、3作为版本号就会冲突

接下来我们进行以下版本回退,如果我们想要让版本回退到version2中,需要怎么做?
首先我们必须知道当前是哪一个版本。在git中,使用HEAD表示当前版本,也就是我们提交的version3.那么上一个版本就是HEAD^,上上一个版本就是HEAD^^,当版本数比较多的时候,我们不可能写很多的^,我们可以直接这样写HEAD~100(假设回退到100版本前)
现在我们要把version3回退到version2
git reset --hard HEAD^

现在我们看看readme.txt是不是我们版本2的信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SfYFDE3j-1650620534637)(/Users/lifuwei/Library/Application Support/typora-user-images/image-20220422105608055.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wiuaWFbU-1650620534637)(/Users/lifuwei/Library/Application Support/typora-user-images/image-20220422105742475.png)]

从上图的结果我们可以看出,版本已经被回退到version2

此时我们可以通过git log --pretty=oneline
查看具体的版本信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bEZLxraO-1650620534637)(/Users/lifuwei/Library/Application Support/typora-user-images/image-20220422110310752.png)]

从上图中我们可以看到,最新版本的version3已经不存在了
如果我们还想要回到原来的版本(version 3),也是可以的。
但是我们前提我们没有关闭命令行,我们可以顺着上面命令行找version3的commit id
即:git reset --hard 7cfde9c
这样我们就又回到了最新版本version3

其实git的版本回退是很快的,因为在git内部有指向当前版本的HEAD指针,当改变版本号的时候就是把指针的指向稍微做一下改变就行

然后我们顺便把工作区的文件更新.(这里需要说明的我们把版本回退就是把本地的代码进行了修改,但是远程的代码我们是还没有进行修改的,所以我们需要把本地的修改强制推送到远端)
命令: git push origin f --force(git push origin 远端的分支名 --force)
执行之后我们就可以去gitee上去查看我们修改的内容
现在,我们出现了一个问题,我们回退到某一个版本之后(比如version2),然后我们关闭电脑两天之后,我们又想把version2版本回退到version3版本,我们需要怎么做呢?
我们知道要进行版本的回退需要知道版本号,所以我们就必须找到该版本号。在git中提供了一个命令git reflog用来记录你的每一次的记录.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QFO2AVyL-1650620534638)(/Users/lifuwei/Library/Application Support/typora-user-images/image-20220422113158057.png)]

从上图可以看出我们每一次的提交版本号(黄色的部分的十六进制数字)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值