git学习(四)----版本跳转

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码容易产生相同的话,你在使用那些个磁力链接时,就不就容易下错文件了嘛。)

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

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

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

版本跳转:git reset

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

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

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

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

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

查看操作git reflog

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

这个时候就要用到:git reflog

(我做了很多次reset操作,主要看红箭头的记录就行。)

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

git log 查看版本信息

git reflog查看操作信息

时间: 2025-01-09 11:37:03

git学习(四)----版本跳转的相关文章

【git学习四】git基础之git为项目打标签

1.背景 今天学习了下如何给项目打标签,为此项目的修改标记版本号,然后可以直接推送版本号到服务器上,方便了很多,而且便于对项目进行管理. 2.打标签 1.查询已有标签,可以使用git tag命令,查询某个特定版本可以git tag -l 'v*' git tag 2.为版本创建标签 git tag -a v1.4 -m 'my version 1.4' 3.查看添加的标签,git show命令 git show 4.也可以对之前的某次commit加标签 git tag -a v1.2 9fceb

git学习——<四>git版本管理

一.git版本管理的优势 都说git比svn强大,强大在哪呢? 首先,从部署上说:svn.cvs都是集中式的,一台服务器上部署服务,所有客户端编写的代码都要提交到该服务器上.git是分布式的,所有人都可以从同一个版本库上克隆相同的版本库到自己的机子上. 这有什么好处呢? 1.使用svn和cvs,提交和check代码,你必须和服务器连上网,否则肯定不能用.git本地就是版本库,所以,你不链接其他机子也能提交到版本库中. 2.每个人都有一个版本库,不担心服务器会挂掉. 3.也可以实现一台机子进行代码

git学习(四):理解git暂存区(stage)

与一般的版本管理不同的是,git在提交之前要将更改通过git add 添加到暂存区才能提交(git commit).即使是已经交给了git来管理的文件也是如此.这里继续学习git的暂存区. 通过git checkout撤销工作区更改 在版本库.git目录下有一个index文件. 首先执行git checkout命令,撤销工作区中welcome.txt文件尚未提交的修改. 原来可以通过这种方法来撤销修改,妈呀,我还是菜啊.之前使用IDEA的时候只知道用revert. git status和git

git学习 四 撤销修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作. 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退,不过前提是没有推送到远程库.

git学习(四)——git log操作

git log操作 log命令的作用:用于查看git的提交历史: git log命令显示的信息的具体含义: commit SHA-1 校验和  commit id Author 作者跟邮箱概要信息 Date 提交时间 git log操作 表示查看最近几次的提交 git log -数字 显示最近两次提交的不同点 git log -p -2 查看具体某个作者的提交 git log --author 输出简要的信息 git log --online 以一个简单的线串联起整个提交历史 git log -

git学习——<五>git分支

git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今天开发的过程中遇到一个问题,A组接到开发任务要修改file文件,B组在此之前的15天为了完成自己的开发任务对file文件进行了修改,为了同步代码,B组将自己未完成的模块file文件提交到了cvs上.A对此一无所知,A组在完成开发任务后,把file文件完全上到了现网环境,报错了. 当然,避免上述问题的途径很多,

Git 学习笔记&lt;远程仓库与标签管理&gt; (四)

什么是远程仓库? 就像第一章介绍的那样,远程仓库可以储存你编写的所有源码和资源文件. 甚至也可以当网盘使,不过当然有很多契合git管理文本的特性. 下面就要以 github 为示例远程仓库进行介绍.  (也可以自己弄一台服务器作远程仓库). 创建仓库 在主页找到 +New repository 或者右上角的加号里有.输入名字 描述 然后没钱只能public就能确定了.然后呢,点名字打开你的仓库.(主页右下角可以找到) 关于与远程仓库的连接 首先你打开你的保险箱得先证明身份吧,不然我怎么知道你是客

Git学习笔记01 从GitHub克隆版本库

步骤一  首先你得有个GitHub帐号 GitHub是为数不多没有被墙的国外技术网站之一,码农之友. 如果要进一步学习Git与远程版本库之间的操作,这一步是必须做的.当然,如果有GitLab帐号也是同样的道理. 具体怎么注册,我想搞技术的你应该没有问题.由于是纯英文的教程,真的不明白,可以问问度娘. 跟着教程创建属于你自己的版本库,到这里你就迈出了Git之旅的第一步.喝彩! 步骤二  生成SSH连接密钥 本教程不使用HTTPS(HTTP Security)协议,而是使用更为安全的SSH(Secu

Git学习笔记(四)

一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了.所有配置文件可以直接在线浏览:https://github.com/github/gitignore .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理! 二.配置别名 $ git config --global al