Git实战操作之版本回退 | 青训营笔记

144 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第4天

昨天的实战笔记进行到了完成创建仓库和commit文件进本地仓库。是不是感觉命令行还是很简单的?听说命令行越用越停不下来,也难怪很多“极客”直接把鼠标放弃了。

命令才是王道啊,一个键盘就够了

今天我们来继续进行操作的实战。

时间线回溯

首先我们需要知道怎么回到以前的版本,相当于时空倒流的操作怎么在命令行实现。

接上期,我们已经在本地创建了一个git仓库,并用了git addgit commit -m操作来将一个写好的txt文件提交到本地仓库。

接下来我们来小小修改一下这个文件,相当于继续在这个平行宇宙发展一下时间线。

image.png

加了一句雷总的名句: are you ok?

保存后继续用相同的操作提交到本地的git仓库

image.png

如上图,成功操作。为了让我们时间线显得更丰富,我们再来点修改和提交:

image.png

提交

image.png

接下来我们用git log命令来查看提交日志。这里显示是按从最近到最远的顺序。可以加上--pretty=oneline参数来减少一些信息,看得更加清楚

image.png

image.png

你让他oneline他确实就展示一行了。

黄色的字符串是十六进制的commit id,也就是版本号,相当于一个版本的身份认证

接下来,我们要开始登上时光机了:用git reset --hard HEAD^命令来回退到一版本。上上版本就是HEAD^^,上上上就是3个^……但是往上版本多了就写不过来了,例如上100个版本就用HEAD~100来代替

image.png

image.png

这里还是回溯单次来示范。可以发现大小写不区分

那么问题来了,怎么回去呢?

我们发现log调出来的日志已经没有我们第二第三个时空的id了

image.png

如果命令行没有clear清空的话,我们可以往上滑来查看第二第三时空的id,同理运用git reset --hard id来恢复

image.png

image.png

id那么长,无需全部复制。我们可以看到这里只输入了前5位就可以定位了。git会自动寻找符合要求的版本,只要输入别太少的位数导致git定位出来好几个版本就行

那如果我关了电脑或者clear过了,导致已经没有上面的命令了呢?

git reflog命令可以查看我们的历史命令

image.png

看到黄色的ID了吗?那就是家的方向(不是)。有了这个我们就可以回到任何时空了。

输入git reset --hard d2ac来回到最近的时空

image.png

image.png

这就完成了git的版本回溯(时空跳跃)。帅不帅