1.1、概述
Git 是一个开源免费的分布式版本控制系统,用于快速高效地管理各种小型或大型项目的代码。
Git 不仅容易学习、占用空间小,而且性能快如闪电。
Git 具有廉价的本地分支、方便的暂存区域和多个工作流等功能。
Git 超越了 Subversion、CVS、Perforce 和 ClearCase 等 SCM (Software Configuration Management软件配置管理)工具。
1.2、版本控制的意义
一般情况下,一份文件,无论是DOC办公文档,还是编程源码文件,我们都可能会对文件进行大量的修改变更。
我们无法保证每一次的修改变更都是正确并且是有效的,因此有时候需要追溯历史操作记录。
版本控制(version control)是一种软件工程技术,能够记录我们对文件和目录等内容的修改历史,除了可以方便查看历史操作记录之外,还能利用历史备份恢复到以前的版本。
1.3、版本控制的类型
1.3.1、集中式版本控制
诸如 VSS、CVS、SVN 等集中式版本控制系统(Centralized Version Control Systems,简称 CVCS),都有一个单一的集中管理的服务器,用于保存所有文件修改变更的历史版本。
协同工作的人们都可以通过客户端连到这台服务器,取出最新的文件或者提交更新。
集中式版本控制的缺点是客户端获取的只是最新版本的文件快照,整个项目的历史记录被保存在单一位置,会有丢失所有历史更新记录的风险。
1.3.2、分布式版本控制
诸如 Git、Mercurial 以及 Darcs 等分布式版本控制系统(Distributed Version Control System,简称 DVCS),客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。
这样一来,任何一处的服务器发生故障,事后都可以用任何客户端的本地仓库来恢复。 因为客户端的每一次获取操作,实际上都是一次对代码仓库的完整备份。
1.4、发展历史
1.5、代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般简称为远程库。
目前,互联网上有两个十分知名的代码托管中心:GitHub(国外网站) 和 Gitee 码云(国内网站)。
如果不想将代码发布到互联网上,也可以使用 GitLab 在内网中搭建一个代码托管中心提供给内部人员使用。