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