肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > 【Git学习笔记二】时光穿梭机

【Git学习笔记二】时光穿梭机

时间:2019-10-14 02:16:17

相关推荐

版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!

本文网址:/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~ngit 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学习笔记二】时光穿梭机》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。