基本概念
工作区(Working Directory)
就是你在电脑里能看到的目录,比如名字为 gafish.github.com 的文件夹就是一个工作区
![](https://i-blog.csdnimg.cn/blog_migrate/9e2218e717804a3b971de6b3d97a6daf.png)
本地版本库(Local Repository)
工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
![](https://i-blog.csdnimg.cn/blog_migrate/e9e50f154778fe8d545ebebab85e2e1b.png)
暂存区(stage)
本地版本库里存了很多东西,其中最重要的就是称为 stage(或者叫index)的暂存区,还有Git 为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫 HEAD。
远程版本库(Remote Repository)
一般指的是 Git 服务器上所对应的仓库,本文的示例所在的github仓库就是一个远程版本库
![](https://i-blog.csdnimg.cn/blog_migrate/3ef48530abfb1facff77a88d555b03d5.png)
以上概念之间的关系
工作区、暂存区、本地版本库、远程版本库之间几个常用的 Git 操作流程如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/adea4c1cb9768eb8656f516e4a2fb8bc.png)
分支(Branch)
分支是为了将修改记录的整个流程分开存储,让分开的分支不受其它分支的影响,所以在同一个数据库里可以同时进行多个不同的修改
![](https://i-blog.csdnimg.cn/blog_migrate/556c5b53743d649fa3219f14accbcc0b.png)
主分支(Master)
前面提到过 master 是 Git 为我们自动创建的第一个分支,也叫主分支,其它分支开发完成后都要合并到 master
![](https://i-blog.csdnimg.cn/blog_migrate/9a80576b314b4ee58c30498619d40802.png)
标签(Tag)
标签是用于标记特定的点或提交的历史,通常会用来标记发布版本的名称或版本号(如:publish/0.0.1),虽然标签看起来有点像分支,但打上标签的提交是固定的,不能随意的改动,参见上图中的1.0 / 2.0 / 3.0
HEAD
HEAD 指向的就是当前分支的最新提交
![](https://i-blog.csdnimg.cn/blog_migrate/e0bf42e6a43a30d94fc35a405ada15e4.png)