一、Git 的安装
官网下载地址:
https://git-scm.com/download
二、Git 客户端安装过程
1、双击安装程序“Git-2.23.0-64-bit.exe”,显示截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/3e71982729289b8d698f8b5cf88ade3b.png)
2、点击“Next”,显示截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/6b19485f120f59275b9ad407534f5ce8.png)
安装目录视自己情况而定
3、继续点击“Next”,显示截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/f53f4e324efede986d85cce3c2ff0026.png)
4、选择完之后,点击“Next”,显示截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/48e21cc3a3490e0350de472da435709b.png)
5、点击“Next”,显示截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/dc47f08932626de9492be08c290b2a4b.png)
6、点击“Next”,显示截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/e0c51f475927ad9ea5f923435ec5746c.png)
7、选择之后,继续点击“Next”,显示如下:
![](https://i-blog.csdnimg.cn/blog_migrate/6d9c3e7711a1367709b9be3a63cf7f40.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e289807f088bd1b56988e98d94bae3bf.png)
8、选择之后,点击“Next”,显示截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/617d91e78746ed1447dfec08edfc5d68.png)
9、选择之后,点击“Next”,显示截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/1bdde710eaf24fe088a28ac2d8263d22.png)
10、选择之后,点击“Install”,开始安装,截图显示如下:
![](https://i-blog.csdnimg.cn/blog_migrate/24b926619ff1228f9dc078a0ab5f4bf8.png)
11、安装完成之后,显示截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/b02aa46bbcfa971140fa6ff943aac245.png)
12、安装完成后,还需要最后一步设置,在命令行输入如下:
![](https://i-blog.csdnimg.cn/blog_migrate/679bd45622fd7223d516941f0b516079.png)
三、如何操作
1、创建版本库
以e盘为例,在git目录下新建一个gittest版本库
![](https://i-blog.csdnimg.cn/blog_migrate/0796a714a011d0abe86dd6a2c60b9092.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b07e831ef1b17dc937f57db8f0f0731e.png)
可以用ls查看是否创建成功
![](https://i-blog.csdnimg.cn/blog_migrate/6b7131bce9750b495dd445d3f43d23dd.png)
通过命令
git init
把这个目录变成 git 可以管理的仓库,如下:
![](https://i-blog.csdnimg.cn/blog_migrate/687b0ee7ff2b1c2927f9f0dbf409c65b.png)
这时候你当前 testgit 目录下会多了一个.git 的目录,这个目录是 Git 来跟踪
管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把 git 仓
库给破坏了
![](https://i-blog.csdnimg.cn/blog_migrate/92c5de8b1dedc5c4acb295bb66d467d8.png)
把文件添加到版本库中
下面演示
1、先在gittest目录下新建一个txt文件,内容为11111111
第一步:使用命令
git add readme.txt
添加到暂存区里面去。如下:
![](https://i-blog.csdnimg.cn/blog_migrate/7ce738b83231b9338e32252643c04a69.png)
没有任何提示说明你成功了👍
第二步:用命令
git commit
告诉 Git,把文件提交到仓库
![](https://i-blog.csdnimg.cn/blog_migrate/ac60a7b4b93f41ba3c8ace85ad59212a.png)
提交成功后我们可以利用git status查看是否有文件未提交
![](https://i-blog.csdnimg.cn/blog_migrate/39912de3baebd3dec12f73a2f447f8a7.png)
这样就说明没有文件未提交
接下来再添加一行内容:22222222,再次使用git status查看
![](https://i-blog.csdnimg.cn/blog_migrate/88f7afde481ba2dbbcdac45374572ebd.png)
这时它会提醒你readme.txt文件已被修改,但不会提及修改的内容,这时只需使用
git diff readme.txt 就能知道修改的内容
![](https://i-blog.csdnimg.cn/blog_migrate/09f7464bde5e0294e1b2de898e93a138.png)
如上可以看到,readme.txt 文件内容从一行 11111111 改成 二行 添加了一行
22222222 内容。
知道了对 readme.txt 文件做了什么修改后,我们可以放心的提交到仓库了,提
交修改和提交文件是一样的 2 步(第一步是
git add
第二步是:
git
commit
)
![](https://i-blog.csdnimg.cn/blog_migrate/7cd7709715710186ffdde7e582876769.png)
2、版本回退
学会修改文件后,我们继续对readme.txt文件进行修改,新添加一行:33333333
执行如下命令:
![](https://i-blog.csdnimg.cn/blog_migrate/ef12d793950bb10600f6d6a73dd3cedf.png)
此时我们已经对文件进行了3次修改,如果此时我们想要查看文件修改的记录,就需要使用
命令
git log
![](https://i-blog.csdnimg.cn/blog_migrate/6e63b83bcebb0bd8dad591f57e64f3ad.png)
git log
命令显示从最近到最远的显示日志,我们可以看到最近三次提交,最
近的一次是,增加内容为 333333.上一次是添加内容 222222,第一次默认是
111111.如果嫌上面显示的信息太多的话,我们可以使用命令
git log –
pretty=oneline
演示如下:
![](https://i-blog.csdnimg.cn/blog_migrate/d40025d17029c38bfc9217f579c64b48.png)
那么如果现在我们想回退到上一个版本的命令,就需要使用
git reset --hard HEAD^ 来实现
(
如果要回退到上上个版本只需把
HEAD^
改成
HEAD^^
以此类推。那如果
要回退到前 100 个版本的话,使用上面的方法肯定不方便,我们可以使用下面
的简便命令操作:
git reset --hard HEAD~100
即可。)
![](https://i-blog.csdnimg.cn/blog_migrate/7129244e01d6e3d7a8221693e65065e7.png)
再来查看下 readme.txt 内容如下:通过命令
cat readme.txt
查看
![](https://i-blog.csdnimg.cn/blog_migrate/bfbb82776e387eed704ffc8ccd710767.png)
可以看到,内容已经回退到上一个版本了。我们可以继续使用
git log
来查
看下历史记录信息,如下:
![](https://i-blog.csdnimg.cn/blog_migrate/32133a1eeabd056fcd0b72787dd52571.png)
这时新增的33333333内容就没有了,
但是现在我想回退到最新的版
本,如:有 33333333 的内容要如何恢复呢?我们可以通过版本号回退,使用命令
方法如下:
git reset --hard 版本号
,但是现在的问题假如我已经关掉过一次命令行或
者 333 内容的版本号我并不知道呢?要如何知道增加 3333 内容的版本号呢?可
以通过如下命令即可获取到版本号:
git reflog
演示如下:
![](https://i-blog.csdnimg.cn/blog_migrate/7b6e879a42e71cbba0812bb7d10218fe.png)
通过上面的显示我们可以知道,增加内容 3333 的版本号是 b8a7cf3.我们现在 可以使用命令
git reset --hard +版本号
来恢复了。演示如下:
![](https://i-blog.csdnimg.cn/blog_migrate/7a796ad21c7ae83c59d6965171e26d03.png)
![](https://i-blog.csdnimg.cn/blog_migrate/edae03095d08cc02d8f79634299db7ce.png)
可以看到 目前已经是最新的版本了
3、理解工作区与暂存区的区别
工作区
:就是你在电脑上看到的目录,比如目录下 testgit 里的文件(.git 隐 藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository)
:工作区有一个隐藏目录.git,这个不属于工作区,这是版 本库。其中版本库里面存了很多东西,其中最重要的就是 stage(暂存区)(或者 叫 index),还有 Git 为我们自动创建了第一个分支 master,以及指向 master 的 一个指针 HEAD。
我们前面说过使用 Git 提交文件到版本库有两步:
第一步:是使用
git add
把文件添加进去,实际上就是把文件添加到暂存 区。
第二步:使用
git commit
提交更改,实际上就是把暂存区的所有内容提交到当 前分支上
![](https://i-blog.csdnimg.cn/blog_migrate/9804eda9d288041697a7a7e6e1ddad81.png)
接着演示:
我们在 readme.txt 再添加一行内容为 44444444,接着在目录下新建一个文件为 test.txt,我们先用命令
git status
来查看下状态
![](https://i-blog.csdnimg.cn/blog_migrate/a73d25b66c29ef94c76e4f30af506a7f.png)
现在我们先使用
git add
命令把 2 个文件都添加到暂存区中,再使用 git status 来查看下状态
![](https://i-blog.csdnimg.cn/blog_migrate/935ba50710743601a5c1e3addfd84464.png)
接着我们可以使用
git commit
一次性提交到分支上
![](https://i-blog.csdnimg.cn/blog_migrate/2fee21701107065b4a662dcfa4612e4c.png)
4.Git 撤销修改和删除文件操作
撤销修改 :
在 readme.txt 文件里面增加一行 内容为 55555555,通过命令查看
![](https://i-blog.csdnimg.cn/blog_migrate/dbfa0461c4db285b32d4e0255ddb9226.png)
在我未提交之前,我发现添加 5555555555555 内容有误,所以我得马上恢复以 前的版本,现在我可以有如下几种方法可以做修改:
第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件, 然后
add
添加到暂存区,最后
commit
掉。
第二:我可以按以前的方法直接恢复到上一个版本。使用
git reset --hard HEAD^
但是现在我不想使用上面的 2 种方法,我想直接想使用撤销命令该如何操作 呢?首先在做撤销之前,我们可以先用
git status
查看下当前的状态
![](https://i-blog.csdnimg.cn/blog_migrate/9a208ff8df96cb0b6d2ea9f43653066b.png)
可以发现,Git 会告诉你,git restore – file 可以丢弃工作区的修改
使用命令
git restore -- readme.txt
![](https://i-blog.csdnimg.cn/blog_migrate/58b60c8137b2eaa9300691caa0dade77.png)
命令
git restore -- readme.txt
意思就是,把 readme.txt 文件在工作区 做的修改全部撤销
这里有 2 种情况,如下:
1. readme.txt 自动修改后,还没有放到暂存区,使用 撤销修改就回到和版 本库一模一样的状态。
2. 另外一种是 readme.txt 已经放入暂存区了,接着又作了修改,撤销修改 就回到添加暂存区后的状态。
对于第二种情况如下:
假如现在我对 readme.txt 添 加一行 内容为 666666666,
git add
增加到暂存区后,接着添加内容
7777777,我想通过撤销命令让其回到暂存区后的状态,如下:
![](https://i-blog.csdnimg.cn/blog_migrate/54bff07d2a1f2f153fc45b2ffd8c9032.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1c39996c52821aa5fcdb75901f7fcb02.png)
![](https://i-blog.csdnimg.cn/blog_migrate/733c6e588eeac4c1a9438e21cb32bd1d.png)
注意:命令
git restore-- readme.txt
中的
--
很重要,如果没有
- -
的话,那么命令变成创建分支了
删除文件 :
假如我现在版本库 testgit 目录添加一个文件 b.txt,然后提交:
![](https://i-blog.csdnimg.cn/blog_migrate/7ab5a43e3e18fe510912be6d4825106b.png)
现在目录里的b.txt文件已经被删除了
![](https://i-blog.csdnimg.cn/blog_migrate/c6016f753ab3ac2f9b0a48f43bcbb0ef.png)
删除后我们有两个选择:
1、直接commit
2、恢复被删除的文件
只要没有
commit
之前,想在版本库中恢复此文件,我们可以使用如下命令
git restore-- b.txt
![](https://i-blog.csdnimg.cn/blog_migrate/dadbdb880096dca0471dc037bd5dcd51.png)
在查看gittest目录
![](https://i-blog.csdnimg.cn/blog_migrate/cc5d33e4044c756b3c1421ed08707f5e.png)
此时b.txt文件就被恢复了。