版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:/sun8112133/article/details/103888442
文章目录
一、日志查询1、版本日志查询2、命令日志查询二、版本切换1、通过 HEAD 方式切换2、通过版本号切换三、工作区与暂存区1、工作区2、版本库中的暂存区四、撤销修改1、还没有添加到暂存区2、已添加到暂存区,还没有提交五、删除文件1、普通删除2、强制删除一、日志查询
1、版本日志查询
如果我们提交了很多个版本,想要查看所有版本,可以使用版本日志查询命令:
git log
,该命令会显示从最近到最远的提交日志。如,我这里一共提交了三次:
commit 5875ce...
:表示版本号,版本号是通过一系列算法计算出来的,每个人提交的版本号都是唯一的;
(HEAD -> master)
:表示目前所在的主分支版本;
Author
:表示提交的作者;
Date
:表示提交时的时间;最后一行表示提交的注释。
如果日志过多,看的会不太清晰,我们还可以加上
--pretty=oneline
参数,将日志信息简洁显示。
2、命令日志查询
Git提供了一个命令日志查询的命令,用来记录你的每一次命令,版本切换时可能会用到:
git reflog
二、版本切换
如果想要进行版本的切换,就必须知道要切换的那个版本的版本号。在Git中,用
HEAD
表示当前版本(也就是5875ce...
,注意这是我的版本号哦~),用HEAD~1
表示上一个版本(2a933c...
),上上个版本就是HEAD~2
,依次类推。使用命令进行切换:git reset --hard HEAD~n
或git reset --hard 版本号
(注意这里的版本号只需要简单写前几位即可,不需要写那一大串)。比如我要切换到
add info.txt & modified readme.txt
这个版本,可以使用HEAD~1
,也可以直接写它的版本号
:
1、通过 HEAD 方式切换
2、通过版本号切换
你会发现当前版本已经是
2a933c...
了。我们也可以直接写它的版本号进行切换:
大家会发现,当我们版本回退后,查看版本日志时之前最新的版本已经不存在,如果我们想回到未来的版本该如何操作呢?我们可以用上一小节提到的命令日志查询的命令:
git reflog
。从中找到最新的那个版本号,再用版本号进行版本切换。
Git的版本切换速度是非常快的,是因为在Git的内部有个指向当前版本的
HEAD
指针,当你切换版本的时候,Git仅仅是把HEAD
指向另一个版本。
三、工作区与暂存区
Git与其他版本控制系统的一个不同之处就是有暂存区这个东西。
1、工作区
就是你电脑中能看到的目录,比如我之前创建好的
MyGit
这个目录,它就是一个工作区。
2、版本库中的暂存区
我的工作区中有一个隐藏目录
.git
,这个目录就不能算工作区了,而是Git版本库。Git版本库里存了很多东西,其中最重要的就是暂存区(stage 或叫 index),Git还会为我们自动创建的第一个分支
master
,以及指向master
的一个指针HEAD
。
上一篇博客我们说过把文件往Git版本库里放的时候,有两步:
1.先用
git add
命令将文件添加进去,实际上就是将文件添加到了暂存区;2.再用
git commit
命令提交,实际上就是将暂存区的所有内容提交到了当前分支。图中的
git commit
命令就是往master
分支(主分支)上提交。你可以简单理解为,需要提交的文件修改先放到暂存区,然后,一次性提交暂存区的所有修改。
四、撤销修改
撤销修改有两种情况:
1.一个文件修改后,还没有添加到暂存区,如果撤销修改,这个文件会放弃工作区中的修改,回到版本库里的状态;
2.一个文件修改后,已经添加到暂存区,如果撤销修改,这个文件会被移出 暂存区,回到第一种情况。
1、还没有添加到暂存区
使用命令:
git restore 文件名...
,就可以将这个文件中的修改全部撤销还原。
2、已添加到暂存区,还没有提交
使用命令:
git restore --staged 文件名...
,就可以将这个文件移出暂存区,重新回到第一种情况。
五、删除文件
如果Git版本库中有文件需要删除,有三种办法:
先在工作区将此文件删除,再将删除的文件添加到暂存区,最后将暂存区中的删除内容提交到Git版本库中;也可以先将工作区的这个文件删除,再使用
git rm 文件名
命令删除Git版本库中的文件,最后提交到Git版本库;或者直接使用git rm -f 文件名
命令强制删除此文件。第 3 种办法太过暴力,不推荐使用,推荐大家使用第 2 种方法。
1、普通删除
2、强制删除
博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!
如果觉得《【Git学习笔记二】时光穿梭机》对你有帮助,请点赞、收藏,并留下你的观点哦!