根据上篇文章的介绍,我们已经在自己的电脑上安装了 Git 并且配置了使用前的个人配置,那么本章接着介绍 Git 的基本概念以及基本操作。
工作区和暂存区
Git 和 SVN 有很大的区别,Git 中引入了暂存区/缓存区(Stage / Index)的概念,如下:
- 1、工作区:就是我们能看到的工作目录,也就是我们的本地的文件夹。
- 2、我们在工作区的文件夹需要通过 git add 命令先将他们添加到暂存区中。
- 3、然后,我们使用 git commit 命令将工作区添加到暂存区中的文件提交到本地仓库中。
Git 的工作流程大致就是这样,比 SVN 多了从工作区把文件添加到暂存区的关卡。在 SVN 中,我们是直接将文件提交到本地仓库中去即可。
基本操作
初始化仓库
仓库的初始化总体来说有两种方式:
- 第一种方式:我们直接去远程仓库克隆。
- 第二种方式:我们直接选择一个本地目录进行初始化。
由于我们本系教程是以 Git 的基本操作为主,所以我们这里主要以第二种方式来介绍 Git 初始化仓库。使用第二种方式初始化仓库直接执行如下命令:
git init
执行命令后,我们会发现当前目录会多出一个 .git 的隐藏文件夹。该文件夹主要存放 Git 所需要的数据和资源。
查看仓库状态
我们初始化后本地仓库后,我们可以通过如下命令查看仓库中文件的状态:
git status
注意:
执行后,其结果:
On branch master
表示我们当前处于 master 分支下。nothing to commit
暂时没有东西可以提交,因为当前仓库还没有记录任何文件的任何状态。
如果,我们手动的在当前目录下创建一个 a.txt 的文件,我们再执行 git status
命令,结果如下:
注意:
这里的结果表示有一个未被追踪的文件,就是我们刚才在当前目录下创建的 a.txt 文件,表示该文件未被 git 仓库所管理。所以我们下面要把该文件添加到暂存区中。
添加文件到暂存区
git add <file>
命令可以将一个文件添加到暂存区。现在,我们的工作区中已经有了一个 a.txt 文件,接下来,我们直接执行如下命令即可把 工作区中的 a.txt 文件添加到暂存区中:
git add a.txt
然后,我们执行 git status
命令,结果如下:
提交到本地仓库
git commit
命令可以将添加到暂存区中的文件提交到本地仓库,操作如下:
注意:
执行 git commit
命令时,我们需要加上提交备注,即 -m
参数,提交成功后,我们再次执行 git status
命令,结果如下:
这时候,显示没有需要 add 的东西,也没有需要 commit 的东西。
如果我们提交文件时,需要写的备注特别多时,我们可以直接执行 git commit
命令,这时会自动打开一个 vi
编辑器,我们可以直接在编辑器中直接输入备注信息即可。现在,我们可以试试对 a.txt 文件进行编辑,然后依次执行 git add
、git commit
命令,这时系统会自动打开一个 vi
编辑器,结果如下:
如上图所示,我们在 vi
编辑器中按照规定格式编辑内容,编辑之后,保存退出即可。此时我们的文件提交成功,结果如下:
注意:
如果,我们在编辑过程中不想提交文件了,我们只需要直接删除备注信息,保存退出,此时提交就终止了,结果如下:
git commit --amend
注意:
使用这个命令是,必须是提交成功后的,运行该命令后,系统自动打开 vi
编辑器,此时我们可以重新编辑上次提交的备注信息:
查看提交日志
通过 git log
命令我们可以查看以往仓库中提交的日志,例如:提交的版本号、提交者、提交者的邮箱、提交时间、提交备注等信息,如下:
有时候我们要查看的日志并不需要这么详细,那么,我们可以在 git log
后面加上 --pretty=short
,这样显示出来的就只是简略的信息了:
以上方式都是查看的我们这个仓库中的所有日志信息,但是我们如果只想看某个文件的日志,在 git log
后面加上文件名即可。如下:
注意:
由于这里小编只有一个 a.txt 文件,所有这个仓库的所有日志信息,和我们查询的 a.txt 文件的日志一致。
如果我们还想查看提交时文件的变化,加上 -p
参数即可,如下:
绿色的 + 表示新增的行,红色的 - 表示删除的行。
git log
有一个局限性,就是不能查看已经删除的 commit的日志。如果需要,我们可以使用 git reflog
命令来实现这一需求, git reflog
命令可以显示整个本地仓库的 commit ,包括所有 branch 的 commit ,甚至包括已经撤回的 commit ,只要 HEAD 发生了变化,就会在 reflog 里看的到。git log
只显示当前分支的 commit ,并且不显示删掉的 commit 。 如下图:
查看更改前后的差异
使用 git diff
命令我们可以查看工作区和暂存区的区别以及工作区和最新提交的差别。现在我们在 a.txt 文件中添加一行 Hello world ,此时执行 git diff
命令,结果如下:
这里显示我们增加了两行(空行和 hello world!!!)。此时我们执行 git add
命令,将文件提交到暂存区,然后再执行 git diff
,结果如下:
如图显示,没有任何信息输出,因为此时工作区的内容和暂存区的内容已经保持一致,我们可以通过 git diff HEAD
命令来查看,如下:
此时,我们如果执行了 git commit
命令将暂存区中的文件提交,提交成功之后,再执行 git commit HEAD
命令,结果如下:
此时,Git 的基本操作小编就介绍到这里,如有疑问请留言!!!