一、Git是什么
Git 是一个分布式版本控制系统。它由 Linus Torvalds 于 2005 年创建,目的是为了管理 Linux 内核开发的版本控制。
二、Git的由来故事
最开始 Linux 的代码是通过 BitKeeper 这个分布式版本控制系统管理的,这个 BitKeeper 是 BitMover 公司免费授权给 Linux 使用的,后面因为 Linux 的社区一位成员将 BitKeeper 试图破解给其他人用,然后被 BitMover 发现后就将使用 BitKeeper 的授权收回了,后面 Linux 的创造者 Linus 花费两周时间写出了 Git ,然后 Linux 的代码就由 Git 管理了。
三、Git简要介绍
1、分布式版本控制系统(Distributed Version Control System)
“分布式”指的是每个用户的本地副本都是完整的代码仓库,包括所有的版本历史记录。也就是说每个用户的本地副本都可以进行回滚到之前的版本、提交或者查看差异等操作。并且这些操作都是可以在本地进行的,不需要链接到服务器。
这样每个开发者可以在自己的本地仓库中独立工作,开发新特性或修复 Bug,而不影响其他人的工作。当准备好后,可以将更改推送到中央仓库,或通过提交补丁、合并请求等方式共享更改。用户可以在本地不连接网络的情况下进行版本控制操作,然后在有网络时再将更改推送到中央仓库。
分布式还有一个优点就是数据丢失的风险很低,因为在每个用户的本地都有完整的仓库,即使中央服务器中的数据丢失,用户也可已从本地恢复数据。
2、集中式版本控制系统(Centralized Version Control System, CVCS)
与“分布式”相反的就是“集中式”,集中式版本控制系统(Centralized Version Control System, CVCS)只有一个中央服务器,所有用户都与这个中央服务器进行交互和版本控制。SVN(Subversion)就是一个集中式版本控制系统,主要用于管理文件和目录的版本。它由 CollabNet 于 2000 年推出,旨在替代早期的集中式版本控制系统(如 CVS(Concurrent Verson Control))。用户的本地只有自己之前同步的版本,如果不联网的话,用户是没法进行回滚版本操作的
补充
除了这两种类型的版本控制系统之外,还有一种本地版本控制系统(例如RCS)。
RCS(Revision Control System)是一个早期的本地版本控制系统,主要用于管理文件的版本,尤其是在单用户或小团队环境中。其所有的版本历史记录都保存在用户本地。用户在本地目录中管理文件和版本,不需要依赖中央服务器。
它主要是对每一个文件进行版本管理,对每一个文件版本做一个快照,这使得它在处理文件版本时非常高效,但不适合大型项目。