【Git学习笔记】重要概念:工作区和暂存区

【Git架构】

Git架构是分为工作区(workding directory)和版本库(repository)的。

工作区就是你本机电脑上看到的工作目录。

版本库就是你工作目录中.git文件夹,版本库中存放了很多东西,比较重要的是stage(或者叫做index)以及被自动创建的master分支,还有指向master的指针HEAD。我们不能手动修改版本库里面的任何数据,否则造成不可预料的错误。

Git框架的整体结构见下图:

【Git学习笔记】重要概念:工作区和暂存区_第1张图片(引自:廖雪峰的官方网站)

我们通过linux命令进入到.git目录下面看下,这个目录都包含什么:

【Git学习笔记】重要概念:工作区和暂存区_第2张图片

前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到stage中;

第二步是用git commit提交更改,实际上就是把stage的所有内容提交到当前分支。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个 master分支,所以,现在, git commit就是往 master分支上提交更改。

【add之前版本库的状态】

先对readme.txt做个修改,比如加上一行内容:

Git has a mutable index called stage.
然后,在工作区新增一个 LICENSE文本文件。

这时执行git stagus命令,查看状态:

【Git学习笔记】重要概念:工作区和暂存区_第3张图片

Git非常清楚地告诉我们,readme.txt被修改了,而LICENSE还从来没有被add过,所以它的状态是Untracked

【add之后版本库的状态】

执行两次add命令,再次执行git stagus命令,查看状态。

【Git学习笔记】重要概念:工作区和暂存区_第4张图片

结果显示,有两个修改需要commit。现在,暂存区的状态就变成这样了:

【Git学习笔记】重要概念:工作区和暂存区_第5张图片(引自:廖雪峰的官方网站)

所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

【commit之后版本库状态】

一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:

现在版本库变成了这样,暂存区就没有任何内容了:

【Git学习笔记】重要概念:工作区和暂存区_第6张图片(引自:廖雪峰的官方网站)


你可能感兴趣的:(Git)