求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
 
为什么Git是优于X
 

发布于2012-2-6

 

便宜的本地分支

使Git的从几乎所有单片机大全-宜配网脱颖而出并出并且最低速度吸引人的特色,恐怕non-它的分支模型莫属。(库)复制到:一个新的目录而已。

Git的不那么做。的Git

这意味着你可以这样做:

  • 创建一个新分支尝试新的想法,提交几次,切换回原先的分支,应用一个补丁,然后再切换至刚才实验中的新分支,将其合并。
  • 推动了其他分支。

重要的是,当你向一个远程库推时,你无需推动所有分支。你可以只共享一个分支而不是全部。这会推动大家尝试新想法而不用操心如何,何时合并或相关的例句他人共享。

Git的让这个过程异常简单,而且当大部分开发者学习的Git时,他们同时改变了他们的工作方式。

所有内容都在本地

虽然所有分布式单片机都有这特点,但根据我的经验的Git做的更好,除了'取','拉'和'推',你很少会用到其他需要跟你的硬盘以外的东西打交道的命令。

这不仅使大部分操作比你已经习惯的要快的多,而且让你可以离线工作。这听起来不怎么样,不过号我经常为自己需要离线完成那么多工作感到惊讶。

即使是使用水银,诸如“传入”和“外向”的常用命令也需要相关的例句服务器连接处,而Git的让你可以在离线前从服务器上获取“

这意味着可以很容易的在你的混帐

Git很快

Git的很快。包括大部分其他系统的忠实使用者在内的人都这么评价的Git。Git的所有操作都在本地进行的特性使它比的SVN和Perforce的要快,因为后两者的普通操作都要进行网络连接。即使与其他允许本地操作的分布式SCM相比,Git的也要快得多。

部分原因可能是因为Git的是被创造用来供Linux的内核开发使用的,而那意味着从-开始它就需要高效处理大型库。此外,Git的是用C语言编写的这减少了运行摘要相关的例句高层语言进行协作的开销。Git的这么快的另一个原因是它的主要开发者把这当成设计目标。

我使用的Git,Mercurial的和集市这三个不同的单片机各存放一份Django的的源代码,进行了一些测试,下面什么一些测试结果。我也用的SVN进行了一些测试,不过相应号我,它要更oC的-基本上是大巴扎的测试结果调加上网络延迟...

测试结果表明除了增加新文件以外,所有的操作都??是Git的最快。(此外在一些非常大的提交操作测试中性汞基本上与Git的一样快,不过我测试的那种提交操作实在太大,你不大可能会遇到那种情况-Git的处理普通提交比其他单片机要快得多)

冷和热什么第一次和第二次对一个库进行分支操作的结果数字-第二次分支使用了硬盘缓存。

需要注意的是虽然“添加”操作的Git要oC的很多,但这是在大量文件-超过2000个-上进行的新增操作。

这些测试结果并不难重现。只要用不同系统复制一份Django的工程就可以比较出来了

  • GIT中克隆的git://的github.com/brosner的/django.gitDJ-GIT
  • DJ-HGHG克隆http://hg.dpaste.com/django/trunk
  • bzr的分支LP:Django的DJ-bzr的
  • svn结帐ht??tp://code.djangoproject.com/svn/django/trunkDJ-SVN

Git很小巧

Git真的非常善于节省磁盘空间。你的Git目录一般只会比一个SVNcheckout大一点点—有时更小(显然.svn目录中的许多内容可以去掉)。

从Django工程的同一个历史纪录点取出的不同部分的clone,提供给我们这些数据。

*第二个Bar数字是我执行'bzrpack'后得到的,我本以为该命令会让它体积变小,但结果反而让它变得大得多。

暂存区域

不同于其他系统而言,Git有它称之为暂存区域(“临时区域”)或“索引”的东西。这是一个用来在提交前对提交内容进行设定的临时区域。

暂存区域最酷,也是让Git的不同于其他工具的地方,是在你完成一部分文件的修改后,可以方便地阶段

你还可以只阶段现在你可以先阶段,当前提交要包括的修改,然后舞台

当然,如果你不想控制这么多,你也可以很轻松的忽略这些特性-只需在提交命令上加上'-A',就可以把所有修改过的文件加入到:暂存区域大全-宜配网的页面了

分布式

包括Git的在内的所有分布式供应链管理的最佳特性之一什么分布式。这意味着你不是“结帐”源代码的最新版,而是“克隆”的整个程式码库。

Git的便不存在单点故障了,除非只有一个点。

同时这不会使操作变得太慢平均来说,SVN检出只比任何一种分布式单片机快一点。在号我测试过的分布式SCM中,Git会什么最快的

适用于任何工作流

混帐

颠覆式的工作流量

取过后,已经有其他人进行了推操作,那么Git的将不允许你直接推动;所以这种所有开发者向同一台服务器推送的集中式模型可以工作的很好。

集成管理员工作流

另一种常见工作流是有一名集成管理员专门负责向'福地'库提交,其他开发者复制该库,推到:他们自己独立的库,随后请求集成管理员发布拉他们的修改。这是开源工程或GitHub的库中很常见的一种开发模式。

司令官与副官工作流

对于规模更庞大的项目,你可以让开发者使用类似Linux的另有一名整合者(司令官)只从副官那里拉,然后推到“福地”库,其他所有人则再从'福地'库复制。

再次强调,对于工作流量的Git非常有弹性,你可以混合及选用任何适合你的工作流量。

GitHub

我本人在GitHub的工作,所以这可能显得有点偏颇,不过号我还是加入了这一部分,因为很多人说正是GitHub上让他们选择了Git的。

GitHub的是很多人使用的Git的原因,相比简单的托管网站,它更象一个社交网络。人们找到相关的例句他们在做的事相关(似)的其他开发人员或项目,然后轻松地叉和贡献,这样形成了一个以Git的和各种项目为中心的活跃社区。

也有其他许多针对的Git和其他供应链管理的服务,但很少有使用者导向或社交导向的更没有哪个什么基于使用者群的GitHub上的社交性什么杀手满级特性,上述特性使得Git的和GitHub上成为快速开发开合源项目的最佳组合。

其他任何一种单片机都不提供这样的社区。

容易学习

本来并非如此-早期的Git的并不是真正意义上的供应链管理,而更象一套让你可以用分布式的方式进行版本控制的工具但是现在Git的命令集和学习曲线已经和其他单片机类似,甚至比其中一些更好。

不作针对性的研究很难证明这一点,在此号我仅仅演示一下的Mercurial和Git的(在汞中,如果你input;HG帮助“,你会得到一份40多个命令的清单。)

在1.6的Git之前,所有的Git命令都存放在可执行路径下,这让使用者非常迷惑。现在虽然Git的仍能识别所有这些命令,但存放在可执行路径下的只有'混帐'这一命令。如果你比较的Mercurial和Git的会发现的Git的命令集相关的例句帮助系统相关的例句水银几乎完全一样-从初学者的UI的角度来说两者几乎没有区别。

现在已经很难说水银或集市比Git的更易学了。


相关文章

每日构建解决方案
如何制定有效的配置管理流程
配置管理主要活动及实现方法
构建管理入门
相关文档

配置管理流程
配置管理白皮书
CM09_C配置管理标准
使用SVN进行版本控制
相关课程

配置管理实践
配置管理方法、工具与应用
多层次集成配置管理
产品发布管理


软件配置管理的问题、目的
软件配置管理规范
CQWeb 7.1性能测试与调优指南
为什么需要使用ClearCase
ClearCase与RTC的集成
利用ClearQuest 进行测试管理
更多...   


产品发布管理
配置管理方法、实践、工具
多层次集成配置管理
使用CC与CQ进行项目实践
CVS与配置管理
Subversion管理员


配置管理实践(从组织级到项目级)
通号院 配置管理规范与应用
配置管理日构建及持续集成
丹佛斯 ClearCase与配置管理
中国移动 软件配置管理
中国银行 软件配置管理
天津华翼蓝天科技 配置管理与Pvcs