为什么说Git将取代SVN做软件版本控制?
请允许我从一个“非编程人员”用户的角度先解释一下软件的版本控制:当若干开发人员组成的团队联合开发一个软件工程时,互相有不同的代码片段任务;他们需要将各自的成果集中起来,并方便随时修改及更新。有时修改后又觉得之前的代码可能更好,需要返回旧版本这就产生了版本控制的需要。代码集中存放的地方叫“文件库”(repository)。每个程序员都可以随时提取(checkout)文件库中的某个文件进行修改,并将修改结果提交(commitchecki
)到文件库去。用来实现这种管理的服务器端程序有多种,下图中就列出了一些版本控制软件。其中Subversio
就是我们常说的SVN,它替代了曾经流行的CSV而成为主流。但目前看来,Git将取代SVN成为版本控制的最佳工具。等等,这个话题跟Joomla有关系吗?当然有关。因为有些Joomla扩展的作者已经开始使用Git来管理自己的代码库,如果用户需要下载最新的“开发版”,就必须了解Git的用法,通过Git来获取想要的文件。
Gitwebsitehomepage
1什么是Git?
上图是Git官方网站首页的部分截图,里面有英文原版的对Git的解释:
fGit是一款免费的、开源的、分布式的版本控制系统。旨在快速高效地处理无论规模大小
的任何软件工程。每一个Git克隆都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。其最大特色就是“分支”及“合并”操作非常快速、简便。
如果你不能理解“分布式”,那么我们看一个简单例子:假如你把开发任务从公司带回家,晚饭后突然有了灵感,要对代码进行修改,不巧家里的电脑不能连接到公司的文件库,你怎么下载要修改的文件?即使你将文件用优盘带回去了,那么修改之后,又怎样提交?SVN对这种情况没有解决方案,而Git可以!因为Git在每个用户硬盘上都创建了完整的文件库,不需要、也不存在一个“中心服务器”,你只要能连接上任何一个团队成员的电脑,就能将代码提交到文件库去(有点像P2P)。顺便说一下,Git是由“Li
ux之父”Li
usTorvalds创建的。因为他发现找不到满意的方案来管理Li
uxKer
el联合开发的版本控制,就自己写了Git。
2Git有什么优势?
从网上的用户评价来看,Git最大的优势就是“快”!对于大型的联合开发项目,用SVN进行版本控制管理时速度很慢,但是用Git就快很多。还有一个说法是:SVN有的功能Git都有,而Git的某些特色SVN根本做不到。这就足够打动我了。我不是开发人员,无需关心更细节的比较了。r