Git系列——Git历史版本查看(log)和前进后退(reset)

Git系列
Git历史版本查看(log)和前进后退(reset)

该篇主要讲解历史版本的查看以及切换,涉及的命令主要包括git log和git reset两个命令

1、历史版本的查看

对于版本的查看命令主要是git log以及它的变形。

1.1、git log

first

其中包含五项信息

  1. 提交的索引值(哈希值)commit
  2. 提交的作者Author,这与最开始配置时的git config信息相同
  3. 提交时间Date
  4. HEAD指针指向当前的版本

1.2、git log --pretty=oneline

pretty
  相较于不带参数的git log,带参数的命令相关信息可以在一行进行显示,对于拥有大量提交记录来说显示比较好。其中包含三项信息:

  1. 索引值(哈希值)
  2. 提交信息
  3. HEAD指针指向的记录

1.3、git log --oneline

oneline
如果不带pretty参数,最开始的索引值变得更精简,只显示原始索引值的前7位进。

1.4、git reflog

reflog
  reflog 相较于oneline参数多了一个 HEAD{_} 参数,这个参数主要告诉我们我们如果想要移动到对应的版本需要移动几步。

reflog2
  在后续的操作中可能会遇到这样的图,git reflog不仅包含了提交的相应信息②,还包括你移动的历史记录①。

2、版本的后退

版本的移动实质就是移动HEAD指针的前进后退,涉及的命令主要是git reset

2.1、基于索引值的后退(推荐)

  • git reflog —hard [索引值]

reflog
  可以看得出来,我们只需要指定我们想要达到的版本的索引值前7位就可以成功后退。对应的文件内容也做了相应的修改。当我们再次执行git reflog的方法时,内容发生了变化。
reflog
可以很明显的看出来,我们 HEAD指针 指向了我们之前指向的版本。

2.2、基于^符号的后退

^符号只能向后退不能进行前进操作。

  • git reset --hard HEAD^^^
    向后退3步,^的个数制定了后退的步数

^符号
这里我们向后退一步,对应的log中也可以看的出来。HEAD指针指向了下一个节点。

2.2、基于~符号的后退

同^符号相同,~符号只能进行后退操作

  • git reset --hard HEAD~[后退的步数]

~符号

这里我们指定向后退两步。

3、版本的前进

  版本前进的命令只能通过索引值的方式进行前进。前面我们也说过了,基于索引值也可以进行后退操作。所以相对来说,基于索引值的版本操作使用更加普遍

前进

非常清楚地我们可以看到我们又把版本前进到我们最新的记录上。

4、reset命令三个参数的区别

4.1、–soft

仅仅在本地库移动HEAD指针,也就是并不会改变暂存区和工作区的内容。
soft
我们首先新增一行Hello Git,然后提交到缓存区,并不提交到本地库。

  • 本地库
    soft-ben
  • 缓存区
    soft-huan
  • 工作区
    soft-work

  我们可以发现变化只发生在本地库上,缓存区和工作区没有发生变化。
  对于出现绿色的提示信息,是因为本地库相对而言向后退了,也就相当于缓存区向前进了一步,看起来就像缓存区里面的内容发生了修改,所以会有提示信息。实则并没有发生修改。

4.2、–mixed

在本地库移动HEAD指针,重置缓存区,并不会改变工作区的内容。
mixed

  • 缓存区
    mixed-huan
  • 工作区
    mixed-work

  缓存区内出现警告,同 soft 中的产生原因相同,由于本地库和缓存区都向后退了一步,也就导致了工作区的内容相对来说,向前进了一步,所以就会出现红色字体。假设缓存区不发生变化的话,就会变成绿色字体。所以暂存区里面的内容发生了重置。

4.3、–hard

在本地库移动HEAD指针,重置缓存区和工作区。
hard

  • 缓存区
    hard-huan
  • 工作区
    hard-work

  可以发现缓存区和工作区没有提示任何信息,也就是说工作区和缓存区里面的内容时空的,也就是被重置了,Hello Git 的内容也被删除。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值