Git基础操作6 | 青训营笔记

简介: 上期介绍了如何用git的回溯功能来实现代码世界的时空跳跃。但是问题很明显:如果跳回的时间又觉得有点远,能跳回较近的时间吗?本期我们就来看看这个。

上期介绍了如何用git的回溯功能来实现代码世界的时空跳跃。但是问题很明显:如果跳回的时间又觉得有点远,能跳回较近的时间吗?本期我们就来看看这个。


一、跳转后的情况


我们发现在跳转到第一个版本的代码时空后,再在git bash命令行输入git log,只显示当前版本的版本号了


image.png

image.png也就是说如果我们没有保存之前新版本的id而且也清空了之前的命令行的话,我们就难以再获得原版本的id了。

那难道我们没有办法撤销我们时空倒流的操作了吗?

显然不可能存在这么反人类的设计


二、Git命令记录


Git存在查看你每一条命令的功能:

git reflog

在命令行里输入这个神奇的命令,就会返回你的命令记录:


image.png

看到这个激动人心的字符串了吗?我们要找的id正在其中!

我们就可以愉快地复制原先代码时空的id来吃下这个后悔药了!


三、Git 的id模糊性


等等!我们发现moving to 后面那串字符串是我们回溯到从前代码时空的代码。通俗地说,我们从“现在”转移回1999年,记录下来的是:

你已经成转移至1999年

可我们并不记得现在是几几年啊……

一筹莫展之时我们发现HEAD@{}前面有一串字符串,好像和id很像,但是少了很多。事实上,仔细发现就会发现这些字符串就是id的前一小部分

没错,这就是在命令操作中git版本id的模糊性

你在跳转或者其他跟id有关的操作时,只需要输入前面一小部分就可以了,git会自动寻找的(不过不能输入太少,否则找到多个匹配的版本就没办法了)

我们愉快地把HEAD@{2} 也就是显示“my third file”的记录前面的id复制下来,就可以回到现代了!


image.png

image.png

查看一下文档,没毛病!

image.png

相关文章
|
4月前
|
Shell 开发工具 git
Git获取本地仓库及基础操作指令
Git获取本地仓库及基础操作指令
37 0
|
6月前
|
Shell 开发工具 git
[笔记]Git 介绍以及入门基本功能(一)
[笔记]Git 介绍以及入门基本功能
|
3月前
|
开发工具 git
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(二)
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(二)
|
3月前
|
算法 安全 Linux
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(一)
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(一)
|
3月前
|
Shell 开发工具 数据安全/隐私保护
git笔记
git笔记
31 0
|
5月前
|
存储 开发工具 git
后端实践--git的简单使用 青训营
后端实践--git的简单使用 青训营
|
6月前
|
Shell 开发工具 git
[笔记]Git 介绍以及入门基本功能(二)
[笔记]Git 介绍以及入门基本功能(二)
|
7月前
|
Shell 网络安全 开发工具
git版本管理加合并笔记
git版本管理加合并笔记
|
8月前
|
安全 程序员 开发工具
代码版本管理笔记 | Python 程序员也应该会的 Git 分支操作
代码版本管理笔记 | Python 程序员也应该会的 Git 分支操作
128 0
|
8月前
|
数据采集 安全 JavaScript
代码版本管理笔记 | Python 程序员也应该会的 Git 进阶操作
代码版本管理笔记 | Python 程序员也应该会的 Git 进阶操作
119 0