Git基础-git的历史版本查看与版本回退(版本切换)
1.谈一谈git中的版本回退
1.我们在git中的每一次 git commit 操作就会提交一个历史版本;
2.每一个历史版本都有一个唯一的hash值进行记录;
3.每一个历史版本实际上就是我们对工作区中的内容修改的一次记录;
4.因此,当我们像退回到某个修改的时候,只需要退回到某个版本即可。
-------------------------------------------------------------------------------
5.在git的版本管理中,有一个叫做`HEAD`的标记,这个标记就是一个用来指向当前版本的指针;
6.因此,当我们进行版本回退或版本切换的时候,实际上是移动HEAD指针的位置。
-------------------------------------------------------------------------------
7.版本回退或版本穿梭之后,可以在对应的版本上进行操作,及提交,提交后便会正常生成一次历史记录。
2.git的历史版本查看命令
2.1 git 历史查看命令介绍
1.git log : 查看详细历史记录,按提交时间倒叙排列,包含提交时间,提交作者,提交备注以及提交的hash值;
2.git log --pretty=oneline : 格式化log形式,每条log只有一行,只包含 完整的hash值 和 提交的备注;
3.git log --oneline : 格式化log形式,每条log只有一行,只包含 短hash值 和 提交的备注;
【注】2和3的区别就是 展示的hash值的长短,短hash就是完整hash截取了前7位的表示形式。
4.git log -n 3 : 只展示最新的 几条 日志,-n 后面的数字就表示 要展示的条数;
5.git log --graph : 会展示历史提交的分支路线;
【注】 参数可以结合使用!
比如 git log --oneline -n 3 : 即一行一行的展示+只展示最近的3次提交记录;
比如 git log --oneline --graph : 即一行一行的展示+展示提交的路线;
6.git reflog : 展示短hash+HEAD{n}+提交备注,非常方便用来进行历史版本的回退与任意版本的切换;
7.git reflog -n 2 : 表示只看最近的两次提交
【注】 git log 和 git reflog 的区别:
git log : 只展示 当前版本之前的版本,即HEAD指针指向的版本及之前的历史版本;
git reflog : 会展示所有的历史提交版本,非常的全。
8.git log --stat : 可以查看历史提交的改动的文件
2.2 git历史查看命令使用效果
2.2.1 git log
$ git log
文章来源地址https://www.yii666.com/blog/351513.html
2.2.2 git log –pretty=oneline
$ git log --pretty=oneline
2.2.3 git log –oneline
$ git log --oneline
2.2.4 git log -n 2
$ git log -n 2 $ git log --oneline -n 2
2.2.5 git log –graph
$ git log --graph $ git log --oneline --graph
2.2.6 git log reflog
$ git reflog $ git reflog -n 2
3.git的版本回退操作(*)
操作思路 : 1.使用 git log 或者 git reflog 命令 获取到要回退或者切换的版本id 2.使用 git reset --hard命令回退/切换到某个历史版本; 3.git reset --hard 命令会重置 本地仓库、暂存区和工作区,三者的状态保持一致!
版本回退/切换的命令: 1.git reset --hard [索引值] : 可切换到任意版本[推荐使用这个方式] 2.git reset --hard HEAD^ : 只能后退,一个 ^ 表示回退一个版本,两个^ 表示回退两个版本,。。。依次类推 3.git reset --hard HEAD~n :只能后退,n表示后退n个版本
3.1 git reset –hard HEAD^
^ : 一个^ 表示回退一个版本; 两个^表示回退两个版本; 三个^表示回退三个版本; 。。。。。。 n个^表示回退n个版本
下面看一下具体的操作:
1.当前的版本及文件数据:
2.回退到上一个版本
3.2 git reset –hard HEAD~n
~n : 表示直接回退到 n 个版本; 是 ^ 参数的简写
下面看一下具体的操作
1.当前的版本及文件数据
2.版本一下子回退 3个
3.3 git reset –hard [索引值]
1.上面的两种方式只能往之前的版本切换; 2.如果想进行任意版本的切换,就可以直接使用 git reset --hard [索引值] 命令;