Git进阶,版本回滚和控制

文章介绍了如何在Git中查看和理解版本ID,包括通过GitBash和GitHub查看提交历史。同时,详细阐述了如何回滚到之前的版本,使用`gitreset--hard`命令配合版本ID,并提到了向前回滚的可能性。内容还包括了版本控制的基本原理和操作实践。
摘要由CSDN通过智能技术生成

Git的一点小进阶

版本的控制

在使用git多次提交后,会产生多次的版本,打开曾经push过的项目,在左下角的Git中可以看见提交过得版本

在这里插入图片描述

而在开发过程中难免遇到版本出问题而需要回退版本,首先我们要了解以下一些概念

1.版本id

版本id在文件被push后会产生一个相应的版本id

(和项目本身版本编号无关!)

有以下两种方式查看

通过Git Bash

这里以我自己的一个代码my first try为例

  1. 打开项目所在文件夹,右键运行Git Bash

在这里插入图片描述

输入git log即可查看到不同版本的对应id

在这里插入图片描述

例如,*”第一次commit“*的版本id为60714……后面那一串,这一串数字事实上是通过加密id得到的,但他仍然生效

若想看见原始的id,你可以输入git reflog,如图

在这里插入图片描述

每一次操作前面的7位字符就是版本id。可以看到我这里进行了很多次提交以及回滚

通过Github来看

打开Git账号,找到对应的仓库打开

点击commits
在这里插入图片描述

在右侧即可看见版本的id
在这里插入图片描述

2.版本控制的原理

图例
第一次提交
第二次提交
第三次提交
第一次commit
版本(空的)
写了一个6
新加了文件夹啊
版本指针

事实上版本控制是由一个版本指针组成的,在每一次提交后,指针都会进行相应地更新,而版本控制的原理就是通过控制版本指针的指向来确定版本。

下面来通过实例了解版本的回滚

3.向后回滚

加入我现在在版本*“新加了文件夹啊”,但是我对他不满意,我要回到版本“写了一个6”*

通过查询,我知道版本*“写了一个6”*的id为8726583

接下来在Git bash中进行操作

输入git reset --hard id

以我的例子,我输入的是git reset --hard 8726583

!!注意此时你的本地库中的代码同样被回溯了,即你的idea中也回溯到只提交了版本*“写了一个6”*,后面的版本是无法看见的!!!!

在这里插入图片描述

我们能看见提示

HEAD is now at (id) message

接下来,对这个id的版本文件进行一个push操作

输入git push -f -u 本地仓库分支 远程仓库分支

-f表示强制push

-u表示使用默认仓库

例如,我的本地分支为try,远程分支为master

(本地分支在idea中首次push时可以自定义,默认为origin)

那么我的输入就是git push -f -u try master

和正常push一样可能会出现网络问题(习惯就好)

若连接正常,则会弹出一个验证界面,在验证界面输入账号密码授权即可

回溯成功后会看见

在这里插入图片描述

然后我们打开Github看看

原先

在这里插入图片描述

现在

在这里插入图片描述

我们的版本成功被回溯了!!!

4.向前回滚

在向后回滚后,相信大家也看到了问题,那就是原先的新的版本的文件和id都消失了

那么此时要如何进行想前回滚呢?

没错,回滚完我又突然觉得版本*“新加了文件夹啊”*,简直是一个超棒的版本!

此时上面提到的两种log的获取就起到了作用,在reflog中,我们依然能找到*“新加了文件夹啊”*的id不是么

它的id为54064bd

重复向后回滚的操作指令again!

在这里插入图片描述

回滚又一次成功啦

总结

  1. 获取版本id
  2. 修改版本指针
  3. 进行push操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值