这是我参与「第四届青训营 」笔记创作活动的第4天
昨天的实战笔记进行到了完成创建仓库和commit文件进本地仓库。是不是感觉命令行还是很简单的?听说命令行越用越停不下来,也难怪很多“极客”直接把鼠标放弃了。
命令才是王道啊,一个键盘就够了
今天我们来继续进行操作的实战。
时间线回溯
首先我们需要知道怎么回到以前的版本,相当于时空倒流的操作怎么在命令行实现。
接上期,我们已经在本地创建了一个git仓库,并用了git add和git commit -m操作来将一个写好的txt文件提交到本地仓库。
接下来我们来小小修改一下这个文件,相当于继续在这个平行宇宙发展一下时间线。
加了一句雷总的名句: are you ok?
保存后继续用相同的操作提交到本地的git仓库
如上图,成功操作。为了让我们时间线显得更丰富,我们再来点修改和提交:
提交
接下来我们用git log命令来查看提交日志。这里显示是按从最近到最远的顺序。可以加上--pretty=oneline参数来减少一些信息,看得更加清楚
你让他oneline他确实就展示一行了。
黄色的字符串是十六进制的commit id,也就是版本号,相当于一个版本的身份认证
接下来,我们要开始登上时光机了:用git reset --hard HEAD^命令来回退到一版本。上上版本就是HEAD^^,上上上就是3个^……但是往上版本多了就写不过来了,例如上100个版本就用HEAD~100来代替
这里还是回溯单次来示范。可以发现大小写不区分
那么问题来了,怎么回去呢?
我们发现log调出来的日志已经没有我们第二第三个时空的id了
如果命令行没有clear清空的话,我们可以往上滑来查看第二第三时空的id,同理运用git reset --hard id来恢复
id那么长,无需全部复制。我们可以看到这里只输入了前5位就可以定位了。git会自动寻找符合要求的版本,只要输入别太少的位数导致git定位出来好几个版本就行
那如果我关了电脑或者clear过了,导致已经没有上面的命令了呢?
git reflog命令可以查看我们的历史命令
看到黄色的ID了吗?那就是家的方向(不是)。有了这个我们就可以回到任何时空了。
输入git reset --hard d2ac来回到最近的时空
这就完成了git的版本回溯(时空跳跃)。帅不帅