Git 是 Linux 的创始人 Linus Torvalds 开发的开源和免费的版本管理系统,利用底层文件系统原理进行版本控制的工具。Git是目前为止最著名运用最好最受欢迎的分布式的配置管理工具。
重点:
1、 Git托管网站:GitHub、CodePlex、Gitorious、Unfuddle
逐渐流行起来的开源项目托管网站,提供丰富的功能,包括团队管理服务器或敏捷项目源控制、项目共享协作、项目发布下载、论坛和邮件、维基和文档页、BUG和跟踪请求的功能、项目使用统计,这些服务都是根据复杂度要进行收费的。如:提供图、表、流程图共项目成员查阅每个文件、目录、项目的变化进程。如:http://gitweb.codeplex.com/(中央仓库)、http://gitscc.codeplex.com,Git Source Control Provider
2、 Git采用哈希算法快照存储、富有Linus Torvalds速度怪物的核心,搜索速度奇快,三向合并法实现自动合并。
3、 支持协议:本地协议(OS目录访问)、SSH、Git、HTTP
4、 Git服务器配置复杂
5、 在本地仓库里,大家可以任意的修改和增加分支,最后提交到中央仓库,由中央仓库自动合并分解,而且这里的合并是智能的不需要人工,它会找到共同的父节点,知道两者的变化都是新增的。
6、 Git是分布式版本管理系统,以文件系统管理为原理的新的版本管理系统。使用规则与VSS、CVS、SVN都有很大不同,以pull、push为主的数据管理方式,主张项目主持人的管理模式,不认同项目成员每天及时提交代码至中央仓库的做法,一切提交到中央仓库的源代码都通过项目主持人确认,并经过仔细删除过程记录后,上传至中央仓库。应用不当可能造成很多问题,如:不同版本里出现同一的文件名及内容,保存都是唯一的一个文件,可能会造成问题追踪的困扰。
7、 Git和Jenkins相互兼容,正在向各个开发环境兼容,目前已经兼容了Eclipse,目前网上热炒的配置管理系统。
我个人的感受:
如果是开源的项目,通过网站托管方式进行统一管理,当然是非常棒的,并且有很多功能,如果不能开源,仅搭建内部Git服务器进行配置管理,团队管理部分的功能就需要自己开发,相比其他配置工具,在这方面没有太大的优势,当然在各大开源网站上已经有大量这方面的实现共享出来,但离系统的管理需求还是有很大距离。另外Git的项目发布与JENKINS的结合绝对值得期待,因为JENKINS也是支持大量团队管理平台,如:支持Microsoft TFS、Oracle P4、Rational ClearCase,且支持多进程、复杂逻辑关系的任务管理,这两个最有前途的开源工具的结合很值得期待。