Git那点事一一Git简史

Git是一款著名的分布式SCM(Source Control Management)系统,它爹是一个叫Linus Torvalds的风一样的男子。对的,你没看错,也就创造了著名的开源操作系统Linux的那个人。作为一个有巨侠爹和万众瞩目的大哥Linux的二代,Git注定了从一出生就自带光环、接管了家族事业的SCM重任。

可谁能想到,不久以前,Git它爹Linus是一位极为厌恶SCM工具的人。从Linux诞生后的一些年,巨侠Linus都是不辞辛苦靠着自己的一双手来管理着大儿子的源码。巨侠武功盖世,视SCM为粪土。然而在2003年,一款名为BitKeeper的分布式的商业SCM走进了巨侠的视野,并成功的吸引了巨侠的注意;BitKeeper也愿意向开源的项目提供了免费使用的版权,于是双方一拍即合,Linux社区开始使用Bit Keeper来作为SCM管理源码。

然而现实鲜有童话故事里那样“从此以后他们幸福的在一起”,好景不长,Linux社区的Geek们在使用BK的时候慢慢觉得有些地方用起来不方便,开始有了很多的想法,终于有一次,澳大利亚的Andrew Tridgell尝试对Bk做反向工程来研究其内部原理以试图改进。这触怒了BitKeeper公司。巨侠Linus试着在Tridgell和BK的CEO Larry McVoy中间调节,但是最后没有成功,这意味着未来Linux社区很可能无法继续使用BK作为SCM工具了。

由简入奢易由奢入俭难。Bk不能用了,其它的SCM工具又入不了眼。在这个时候再让Linus回去用勤劳的双手维护规模越来越庞大的Linux源码会是一件痛苦的事情。经过一段时间的思考,Linus决定按自己的想法造一个新的SCM工具。

这一次Linus再一次展现了作为一名巨侠的非凡功力,单枪匹马拎起键盘就干,只用了一天,Git编译部署后就可以用来托管Git自己的源码了。十几天后,Git就能被用于Linux 内核源码的管理。当然Git能在这么短时间内就形成生产力,除了Linus武功盖世,也和后发优势有关,Git有许多地方受益于BitKeeper,借鉴BitKeeper的许多命令结构和一些特点。例如,从远程仓库克隆本地仓库,BK的命令为

$ bk clone bk://bkbits.net/bkdemo/bk_demo

又如,创建一个新的本地仓库:

$ bk init new_project

2005年Linus发布了Git的第一个正式版本。自此以后,Git开始了飞速的生长。尤其是随着GitHub的上线,越来越多的开源项目迁移到GitHub,原来越多的项目也开始拥抱Git。根据2016年rhodecode的统计,Git的使用份额在2013年左右开始超越SVN,SCM江湖的霸主从此易位。

相关推荐