1.Git基础
版本控制系统是一种用于记录一个或多个文件内容变化,以便将来查阅恢复特定版本修订情况的系统。
Git是一种分布式版本控制系统(Distributed Version Control System,简称 DVCS)。在Git中绝大多数的操作都只需要访问本地文件和资源,一般不需要来自网络上其他计算机的信息。
它和集中式版本控制系统(Centralized Version Control Systems,简称 CVCS)相比,其不存在单点故障的问题。在CVCS中,如果中央服务器出现故障,则所有的人都无法继续协同工作,而且数据如果没有很好的备份,会出现数据丢失找不回的情况。但是在DVCS中就不存在这个问题,在网络中的每一个节点都包含代码仓库的镜像,当协同工作用的服务器出现故障的时候,都可以使用任何一处镜像出来的本地仓库进行恢复。
1.1 Git的三种状态以及三种工作区域
理解Git,首先得记住Git的三种状态:已提交(commited),已修改(modified)和已暂存(staged)。
1. 已提交(commited):表示数据已经安全的保存在本地数据库中。
2. 已修改(modified):已经修改了文件,但是还没有保存到本地数据库中。
3. 已暂存(staged):表示对一个已经修改的文件的当前版本做了标记,使其包含在了下次的提交中。
上面的三种状态对应于Git的三个工作区域的概念:Git仓库,工作目录已经暂存区域。参考下图:
1. Git仓库(对应于上图中.git directory):Git用来保存项目的元数据和对象数据库的地方。这是Git最重要的部分,当你clone远端仓库时,其实拷贝的就是这里的数据。你克隆下来的Git项目,都会有一个隐藏的名字为.git的文件夹,这就是所谓的Git仓库。
2. 工作目录:是对项目的某个版本独立提取出来的内容。这里面的内容是从Git仓库的压缩数据库中提取出来的,一般是项目相关的文件(代码等),供你修改编辑。其实就是项目的相关文件。
3. 暂存区域(有时候也被称为索引):它本质上只是一个文件,记录了下次将提交(commit)的文件列表信息,这个文件一般存在于Git仓库中(也就是.git directory)。
基本的Git工作流程
1. 在工作目录中修改文件
2. 暂存文件,将文件的快照放入暂存区。
3. 提交更新。找到暂存区域的文件,将快照永久性的存储到Git仓库。