为什么这么多的开源项目从SVN转移到git?

时间:2010-11-12 21:28:49

标签: svn git

  

可能重复:
  Why is Git better than Subversion?

我遵循了许多不同的开源项目,主要是围绕Java技术,但这个问题可能是普遍存在的。我注意到在过去的6个月左右,许多项目正在从颠覆转向git。

我的问题是为什么? git优于颠覆的优点是什么,这些优势是否适用于商业世界(即我应该用git替换我的cvs和svn存储库)?

6 个答案:

答案 0 :(得分:4)

来吧,你看过世界卫生组织写的git吗? Linus Torvalds自己!

现在认真,我认为使用git主要有三大理由:

1)克隆模型:使用Subversion,您执行“checkout”,实际上,它只是给定时刻内存储库的快照。每个其他操作(提交,分支,检查日志,与以前的版本进行比较)都需要对原始存储库进行网络访问。使用git可以有效地将整个存储库“克隆”到本地计算机,允许您执行一系列本地提交,回滚,浏览历史记录等,而无需再次汇集服务器。对于大多数开源开发人员来说,这是一件好事。

2)分叉模型:在Subversion的时代,创建一个项目的分支是一个灾难性的事件。这通常意味着,在几个月内,其中一个项目就会死亡。使用git(和Github在这个问题上有很多帮助),fork很容易和健康,开发人员可以合并两种方式的变化,并且给定项目的许多分叉可以共存。

3)部分提交:没有多少人使用它,但您可以选择仅提交已更改文件的一部分(使用git add -p)。它可以在微妙的情况下节省大量时间。

当然还有很多其他原因导致git(或者一般来说DVCS)比Subversion更好,但是,对我来说,那3个是杀手。

答案 1 :(得分:2)

嗨,请不要错过github和git之间的区别。

Github只是免费提供的git服务器。

为什么github? - 因为只需单击鼠标即可轻松分叉和合并项目。

这给我的商业价值如下: - 任何人都可以对我的项目做一些工作并要求我合并他的更改,不需要特殊知识,请求的历史很容易看到... - 通过对所有项目使用一个帐户来观察项目的变化 - 您也可以拥有不公开的封闭存储库(收取一些费用)。 - 可能还有很多,只需访问github

git本身给出了什么,请参阅其他人的回复。

答案 2 :(得分:1)

因为许多程序员认为分布式源代码管理系统(如GIT)优于需要集中式服务器的系统。

答案 3 :(得分:1)

有几个原因

  • 作为一个分布式系统,Git被认为更好。

  • 您不需要读/写权限,而且管理在git-world中也很麻烦。

  • 更容易为项目做出贡献。

  • Git最终可以让您更好地控制主存储库中的内容以及不存在的内容。

我认为,大多数酷炫的优势都会延续到商业世界。但如果你想要转变,就要慢慢开始。

答案 4 :(得分:1)

坦率地说,我不知道。我发现git有一个模糊的命令语法,并且通常非常烦人且难以使用。 git很快,但其他DVCS也同样快。我认为总的来说,有更好的DVCS而不是git,我觉得使用它会更有意义。

现在,为什么人们从Subversion迁移到DVCS是一个明显而简单的问题。分布式版本控制系统在各个方面都更好。

在Subversion中,我无法检查事情,进行自己的本地更改并检查它们。我必须经历扭曲,例如定期将事物复制到供应商分支以及合并或其他一些荒谬的事情。

这有很多积极的好处。成为贡献者的障碍变得更低。该项目变得更容易实用。跟踪项目维护者不想要的变化,但是你变得更容易。

此外,当您在笔记本电脑上检查项目时,您的USB记忆棒和您的系统正在运行,现在有一种清晰合理的方法可以检查所有这些地方,无论互联网连接如何,并且能够加入所有内容再来一次。

它还可以为整个源存储库及其所有历史记录提供出色的分布式备份。 DVCS存储库几乎不可能丢失重要的历史记录,因为它存在如此多的副本。

有些人认为Subversion的“中央控制”是件好事。但实际上,你根本就没有任何控制权。你所做的一切就是让那些不属于那些你认为是提交者的神圣群体的人变得非常不方便。所有这些人都可以制作自己的源代码副本甚至整个历史记录。我经常将项目的整个Subversion历史记录转换为DVCS,以便对其进行处理。

使用DVCS的项目有一个权威的存储库,它与“集中控制”的Subversion存储库一样具有权威性。分布式模型是集中模型的严格超集。

答案 5 :(得分:1)

这是因为GIT使分支和合并无缝。关于分支和合并,我没有听到任何关于SVN的赞誉。 GIT为您提供完全自由,而不是您想要推送到公共存储库的内容。