一、Git 是什么
Git是一款分布式源代码管理工具(版本控制工具) 。Git得其数据更像是一系列微型文件系统的快照。使用Git,每次提交或保存项目状态时,Git基本上都会记录当时所有文件的外观,并存储对该快照的引用。为了提高效率,如果文件没有改变,Git不会再次存储文件,只是指向它已存储的上一个相同文件的链接。Git认为它的数据更像是一个快照流,会将数据作为项目的快照存储一段时间。可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
二、Git 的安装
官网下载地址:
https://git-scm.com/download
Git 客户端安装过程
1、双击安装程序“Git-2.23.0-64-bit.exe”,显示截图如下:
2、点击“Next”,显示截图如下: 根据自己的情况,选择程序的安装目录。
3、继续点击“Next”,显示截图如下:
4、选择完之后,点击“Next”,显示截图如下:
5、点击“Next”,显示截图如下:
选择编辑器,可以选 vim
6、点击“Next”,显示截图如下:
7、选择之后,继续点击“Next”,显示如下:
8、选择之后,点击“Next”,显示截图如下:
9、选择之后,点击“Next”,显示截图如下:
10、选择之后,点击“Install”,开始安装,截图显示如下:
11、安装完成之后,显示截图如下:
12、安装完成后,还需要最后一步设置,在命令行输入如下:因为 Git 是分布式版本控制系统,所以需要填写“邮箱和用户名”作为一个标识,如图所示:
三、如何操作
1、创建版本库。
版本库又名仓库,可以简单的理解一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改,删除,Git 都能跟踪,以便任何时刻都可以追踪还原历史。
如下在
F
盘 –>
git
目录下新建一个
gittest
版本库。
pwd 命令是用于显示当前的目录。
(1)通过命令
git init
把这个目录变成 git 可以管理的仓库,如下:
(2)把文件添加到版本库中。
我在版本库 testgit 目录下新建一个记事本文件 readme.txt 内容如下: 11111111
1:使用命令
git add readme.txt
添加到暂存区里面去。如下:
如果和上面一样,没有任何提示,说明已经添加成功了。
2:用命令
git commit
告诉 Git,把文件提交到仓库。
3.已经提交了一个 readme.txt 文件,可以通过命令
git status
来查看是否还有文件未提交,如下:
4.没有任何文件未提交,但是现在继续来改下 readme.txt 内容,比如在下面添加一行2222222 内容,继续使用
git status
来查看下结果,如下:
5.接下来想看下readme.txt 文件到底改了什么内容。可以使用如下命令查看:
git diff readme.txt
如下:
6.知道了对 readme.txt 文件做了什么修改后,可以提交到仓库,提交修改和提交文件是一样的 2 步(第一步是
git add
第二步是:
git commit
)。如下:
2、版本回退
如上,现在对 readme.txt 文件进行修改,再增加一行内容为 3333333.继续执行命令如下:
现在已经对 readme.txt 文件做了三次修改了,那么我现在想查看下历史记录,如何查呢?
我们现在可以使用命令
git log
演示如下所示:
git log
命令显示从最近到最远的显示日志,我们可以看到最近三次提交.如果嫌上面显示的信息太多的话,我们可以使用命令
git log – pretty=oneline
演示如下:
使用版本回退操作,把当前的版本回退到上一个版本,第一种是:
git reset --hard HEAD^
如果要回退到上上个版本只需把
HEAD^
改成
HEAD^^
以此类推。
那如果要回退到前 100 个版本的话,可以使用下面的简便操作:
git reset --hard HEAD~100
。
未回退之前的
readme.txt 内容如下:
如果想回退到上一个版本的命令如下操作:
再来查看下 readme.txt 内容如下:通过命令
cat readme.txt
查看
可以看到,内容已经回退到上一个版本了。我们可以继续使用
git log
来查看下历史记录信息,
如下:
我们看到 增加 3333333 内容我们没有看到了,但是现在我想回退到最新的版本,可以通过版本号回退,使用命令方法如下:
git reset --hard 版本号
,但是现在的问题假如我已经关掉过一次命令行或者 333 内容的版本号我并不知道呢?要如何知道增加 3333 内容的版本号呢?可以通过如下命令即可获取到版本号:
git reflog
演示如下:
通过上面的显示我们可以知道,增加内容 3333 的版本号是 b8a7cf3.我们现在可以使用命令 git reset --hard a0971bf 来恢复。演示如下:
四、Git 撤销修改和删除文件操作
1、撤销修改
第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后
add
添加到暂存区,最后
commit
掉。
第二:可以使用
git reset --hard HEAD^
但是直接想使用撤销命令该如何操作呢?如下命令:
git restore -- readme.txt
,
命令
git restore -- readme.txt
意思就是,把 readme.txt 文件在工作区做的修改全部撤销,这里有 2 种情况,如下:
1. readme.txt 自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
2. 另外一种是 readme.txt 已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
对于第二种情况,我想我们继续做 demo 来看下,假如现在我对 readme.txt 添加一行 内容为 6666666,我
git add
增加到暂存区后,接着添加内容7777777,我想通过撤销命令让其回到暂存区后的状态。如下所示:
注意:命令
git restore-- readme.txt
中的
--
很重要,如果没有
--
的话,那么命令变成创建分支了。
2、删除文件
假如在版本库 testgit 目录添加一个文件 b.txt,然后提交。如下:
如上:一般情况下,可以直接在文件目录中把文件删了,或者使用如上 rm 命令:
rm b.txt
,如果想彻底从版本库中删掉了此文件,可以再执行
commit
命令提交,如图所示
只要没有
commit
之前,可以使用如下命令
git restore-- b.txt
恢复此文件,如下所示: