Git是一个分布式的版本控制系统,与集中式的版本控制系统不同的是,每个人都工作在通过克隆建立的本地版本库中。也就是说每个人都拥有一个完整的版本库,查看提交日志、提交、创建里程碑和分支、合并分支、回退等所有操作都直接在本地完成而不需要网络连接。

工作区域

git本地有三个工作区域 工作目录(working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果再加上远程的git仓库(Remote Directory),就可以分为四个工作区域。

这四个工作区域的转化关系如下

01

根据上图来分析各层的关系:

  • Workspace: 工作区,平时存放代码的地方。
  • Index/Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即提交到文件列表信息。
  • Repository: 仓库区(或本地仓库),就是安全存放数据的位置,这里有你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本。
  • Remote: 远程仓库,托管代码的服务器,可以简单地认为是你项目组中的一台电脑用于远程数据交换。

本地区域与文件示意图

本地的三个区域确切的说应该是git仓库中HEAD指向的版本

02

  1. **Directory:**使用Git管理的一个目录,也就是一个仓库,包括我们的工作空间和Git的管理空间
  2. **WorkSpace:**需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间
  3. **.git:**存放Git管理目录信息的目录初始化仓库的时候自动创建
  4. **Index/Stage:**暂存区(待提交更新区),在提交进入repo之前,我们可以把所有的更新放在暂存区
  5. **Local Repo:**本地仓库,一个存放在本地的版本库;Head指向当前的开发分支
  6. **Stash:**隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态

Git工作流程

git的工作流程主要分为以下几个步骤

  1. 在工作目录中添加、修改文件;
  2. 将需要进行版本管理的文件放入暂存区域:git add
  3. 将暂存区域的文件提交到本地git仓库:git commit
  4. 将本地git仓库中的内容push到云端

03

Git 和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。

  • 局域网
    • GitLab
  • 互联网
    • GitHub(外网)
    • Gitee 码云(国内网站)