闲聊Git

Git

Git是协同开发必不可少的技能,今天根据个人的理解闲聊一下Git。

“Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。”

怎么来理解这句话呢?

我们来提取两个关键字,“分布式”和“版本控制”。

 

分布式

与分布式不同的是集中式,例如CVS和SVN版本控制系统。集中式只有一个仓库,也就是服务器的远端仓库,所以每次操作都要与服务器进行交互,而且集中式有一个弊端就是如果服务器出了问题,会丢失项目。而分布式的好处就是,每一个人的电脑上都有一个本地仓库,所以不用联网也可以对仓库内的项目进行版本控制。同时还有远端仓库,可以在本地仓库完成对项目的版本控制之后,再推送到远端仓库。

 

版本控制

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

 

Git的诞生背后有着一个很传奇的故事:

Linus创建了开源Linux系统,世界各地很多志愿者为了壮大Linux,给Linus提供代码。因为Linus反感集中式的版本控制系统,所以没用CVS、SVN这些免费的版本控制系统。而是选择人工合并代码。随着Linux系统的发展,代码库变得非常庞大。Linus很难继续以人工的方式合并代码,于是选择了一家商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用BitKeeper。Linux社区里面很多大神,而且都是来自世界各地,很难对人员进行管理。用了几年BitKeeper之后,有一个大神试图破解BitKeeper,惹怒了BitMover,于是收回了免费使用权。于是Linus花了两周的时间,自己用C写了一个分布式版本控制系统,这就是Git。

你可能感兴趣的:(Git)