Git 概述
Git 是开源的、分布式版本控制系统。
版本控制工具
集中式
集中式版本控制工具,如 SVN,都有一个单一的集中管理的服务器,保存所有文件的修订版本。而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
好处:
- 每个人都可以在一定程度上看到项目中的其他人正在做些什么。
- 管理员也可以轻松掌控每个开发者的权限。
- 管理一个集中化的版本控制系统更加容易。
坏处:
- 中央服务器的单点故障。
分布式
分布式版本控制工具,如 Git,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地保存下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
分布式的版本控制解决了集中式版本控制系统的缺陷:
- 服务器断网的情况下也可以进行开发(版本控制在本地)。
- 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全,避免单点故障)。
Git 工作流程
一般工作流程如下:
- 克隆 Git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 如果其他人修改了,你可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
Git 工作机制
Git 的工作机制如下:
- 在工作区中,可以写代码。
- 将文件添加暂存区,作为临时存储。暂存区英文叫 stage 或 index,一般存放在 .git 目录下的 index 文件(.git/index)中。
- 将暂存区的代码提交到本地库中,形成历史版本。
也可以将代码提交到代码托管中心(如 Github),代码托管中心是基于网络服务器的远程代码仓库。