Git学习(四)----版本号跳转

摘要:
gitlog、gitreflog、gitresetGit版本号跳转:想实现版本号跳转,须要先了解Git的版本号的标记,也就是通过这个唯一的标记能定位一个版本号,也就是commitid。版本号跳转:gitresetgitreset直接加commitid就能够实现版本号跳转可是当打开test2.txt文件时,发现文件根本没改变。回滚之后突然发现这个版本号不行,还是要退回刚刚那个版本号,可是gitlog中已经不显示刚刚那个版本号的commitid了。

git log 、git reflog 、git reset

Git版本号跳转:

想实现版本号跳转,须要先了解Git的版本号的标记,也就是通过这个唯一的标记能定位一个版本号,也就是commit id。

这个commit id是个挺长的字符串。由于它是通过SHA-1计算出来。

(这个字符串就跟你硬盘里的某些磁力链接挺像的。嘿嘿嘿!),由于git是分布式的,所以每一个人电脑上都有完整代码。假设你更新了别人文件到本机上了。他提交的commit id是简单的自增数字(1,2,3....),就有可能会和你本机上的commit id冲突。那么就起不到定位的作用了哈。

(对于想问“SHA-1能够做到不会反复吗?”的童鞋。你们去看看SHA-1的原理。最好把数字签名的原理也看了,都挺有意思的哈。再说,假设这个SHA-1码easy产生同样的话,你在使用那些个磁力链接时。就不就easy下错文件了嘛。)

言归正传,首先,我们先查出全部版本号的commit id。输入:git log (显示全部提交日志)

Git学习(四)----版本号跳转第1张

这样看起来不方便,输入:git log --pretty=oneline

Git学习(四)----版本号跳转第2张

前边黄色的长字符串就是commit id了。

版本号跳转:git reset

git reset 直接加 commit id 就能够实现版本号跳转(commit id不用全写,写到7位就能够了)

Git学习(四)----版本号跳转第3张

可是当打开test2.txt文件时,发现文件根本没改变。(一脸懵逼)

这个时候要相信程序,没有报错就说明操作没有错误,查询一下git的状态:git status

Git学习(四)----版本号跳转第4张

这个时候就发现了。原来git内部记录已经回滚到指定日期的记录。仅仅是文件内部没有回滚,文件会作为已改动的文件将与“记录”不同的内容保存下来。

假设想文件内容也回滚:git reset --hard 加上commit id

Git学习(四)----版本号跳转第5张

查看操作git reflog

假设。回滚之后突然发现这个版本号不行,还是要退回刚刚那个版本号,可是git log中已经不显示刚刚那个版本号的commit id了。

Git学习(四)----版本号跳转第6张

这个时候就要用到:git reflog

Git学习(四)----版本号跳转第7张

(我做了非常多次reset操作,主要看红箭头的记录即可。

这个时候想回到add4,输入:git reset b1ca470

Git学习(四)----版本号跳转第8张

git log 查看版本号信息

Git学习(四)----版本号跳转第2张

git reflog查看操作信息

Git学习(四)----版本号跳转第10张

免责声明:文章转载自《Git学习(四)----版本号跳转》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于for循环里面异步操作的问题@echo off 与@echo on 区别(前者为关闭回显,后者为打开回显)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

git push rejected

在ideal里面突然无法提交代码了 于是使用命令行: git push; 报错: 写入对象中: 100% (30/30), 3.62 KiB | 928.00 KiB/s, 完成. 总共 30 (差异 13),复用 0 (差异 0) remote: ======================================================...

SQL serve 数据库--视图、事物、分离附加、备份还原

视图是数据库中的一种虚拟表,与真实的表一样,视图包含一系列带有名称的行和列数据。行和列数据用来自定义视图的查询所引用的表,并且在引用视图时动态生成。 视图只能用来查询,不能增删改;不允许出现重复列 1. 视图的概念 视图是从一个或者多个表中导出的,其行为与表相似,但视图是一个虚拟表。视图可以在已经存在的视图的基础上定义。在视图上用户可以使用SELECT语...

git push到Gitee的时候上传不成功,可能是本地文件夹与远程仓库不同步

注意:也有可能时 远程分支和本地分支名称不一致,同步之后,上传成功但是是一个新的分支!!!【可以去管理仓库中,将新增分支设置为主分支,然后去吧旧的分支删除】 1、git pull origin master --allow-unrelated-histories //把远程仓库和本地同步,消除差异 2、重新add和commit相应文件 3、git pu...

win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法

之前的系统没有这个问题,就是win10有这个问题,过一段时间就会出现这个问题,网上找了很多,最后发现是显卡驱动的问题,是A卡的问题,只需要更新A卡驱动即可,如果更新A卡驱动不行的话,或者说A卡驱动已经是最新了,那么就去设备管理器回滚驱动程序到上一个版本。 更新显卡驱动的方法: 桌面上右键,Radeon设置,然后 如果更新驱动不行那么就回滚驱动: win+...

Ionic4.x、Cordova Android 检测应用版本号、服务器下载文件以及实现App自动升级、安装

Android App 升级执行流程 1、获取本地版本号2、请求服务器获取服务器版本号 3、本地版本和服务器版本不一致提示升级,弹窗提示用户是否更新 4、用户确定升级,调用文件传输方法下载 apk 文件 5、监听下载进度6、下载完成打开 Apk 进行安装 注意:在 ios 中没法直接下载安装,如果版本不一致直接跳转到 Ios 应用对应的应用市场...

Android 编程下字库的使用

在安卓操作系统下对于 TextView 字体的支持很有限,默认情况下 TextView 的 typeface 属性支持 "Sans","serif","monospace" 这三种字体,假设在没有指定字体的情况下。系统缺省会使用 "Sans" 作为文本显示的字体。但这三种字体仅仅支持英文,也就是说仅仅要你显示的文字是中文,不管你选择这三种字体中的哪一种,...