Git 相比 svn 和其他版本管理工具的核心优势都有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 相比 svn 和其他版本管理工具的核心优势都有哪些?相关的知识,希望对你有一定的参考价值。

参考技术A

首先git具有本地的版本管理且不需要假设远程的服务器,这就很方便。最重要的还是能够不污染子目录的track文件。然而svn每个子目录都要扔一个,这就造成了很大的麻烦,而且还会出现各种clean up无果. delelte后svn up异常,真的令人很无语。

其次git具有强力的merge工具:git根据commit ticket依次再进行一次merge.提高了merge成功率.避免svn merge中的难堪。即使merge失败也不会有任何的其他的版本文件,只需要简单修改就可以继续。

并且git还具有git gc:由于git本身不保存文件之前的差异文件.只保存每个文件的快照,频繁修改大文件的情况下会造成git目录变得很大git gc后,会在.git目录下生成一个packfile与idx文件.只保存文件差异,又解决了一个常见的问题。

强大的branch.推荐根据的git workflow的开发流程.将workspace分成几区.master dev feature hotfix区等。Git实现了去中心化scm工具,而github成为了新一代凭作品交流的sns+code host平台。其他版本管理工具相比而言如google code则是每况愈下。

参考技术B

首先我觉得区别可以再很多地方区分开来,我就从我自己理解的这部分先说吧!

Subversion是一个集中的数据仓库。

尽管git分布式数据仓库的显著优点(如快速和多副本)吸引了很多人,但在许多情况下,集中式数据仓库更合适。例如,如果您有一些核心代码,您希望只允许少数人访问,那么您就不希望将其放入git中。许多公司都是集中管理他们的代码,我猜所有(重要的)政府项目估计都使用一个版本控制系统来集中数据仓库。

svn的理念是符合常规的。

据说许多人(尤其是经理或老板)对版本号的理解是一种习惯,发展是一种时间的线性轨迹,它深深扎根于他们的思想中。不是一个借口,Git可选性不是很容易理解,事实上,你可能会注意到任何一本关于Git的书都会在第一季度的第一章告诉你放弃大脑中所有的传统观念,重新理解。

Subversion只提供了一种方法,没有第二种选择。

SVN是一个版本控制系统,它只提供一种方法,每个人都使用相同的方法。就是这样。这使得您可以很容易地将代码从SVN迁移到其他集中管理的VCS或其他集中管理的VCS。Git不仅仅是一个版本控制系统,它实际上是一个文件系统,它有很多拓扑知识来支持您如何在不同的环境仓库中设置代码——并且没有统一的标准。选择正确的拓扑结构成为一个问题。

以上纯属是个人理解哈,希望对你有些帮助!

谈一谈git和SVN两大版本管理工具。

Git SVN 的区别?

写在前面:

gitSVN都是一个版本管理工具,没有孰优孰劣之分,在这里,只是简单的说一说gitsvn的优缺点。选用哪一个看自己公司的实际情况而定。

1) 核心的区别在于git是分布式的,SVN不是。但git不是唯一的分布式的版本管理工具,还有像Mercurial等分布式版本管理工具,也有像SVN一样的集中式版本管理工具,例如VSS,CVS等。GitSVN一样有自己的集中式版本库和Server端,但Git更倾向于分布式开发,因为每一个开发人员的电脑上都有一个Local Repository,所以即使没有网络也一样可以Commit,查看历史版本记录,创建项目分支等操作,等网络再次连接上PushServer端。这一点是非常讨喜的。

2) Git把内容按元数据方式存储,而SVN是按文件:因为.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。.git目录的体积大小跟.svn比较,你会发现它们差距很大。

3) Git没有一个全局的版本库,SVN有。

4) Git的内容完整性优于SVN。因为git的内容存储使用的是sha-1哈希算法。

5) Git可以有无限个版本库,SVN只能有一个指定的中央版本库。

6) SVN有一个致命的缺点,当SVN中央版本库有问题时,所有的工作成员都一起瘫痪直到版本库维修完毕或者新的版本库建立完成。每一个git都有一个版本库,区别是它们是否拥有活跃目录。如果主要版本库有问题,工作人员仍然可以在自己的本地版本库提交,等主要版本库恢复即可。工作人员也可以提交到其他的版本库!

写在后面:

Git最大的特点是分布式,工作人员可以在任何地点工作,没有网络也可以,但相对而言安全性可能会差一点。SVN特点是集中式,虽然对人员有限制,但是在安全这方面也会优于gitGit的操作相对于SVN来说会难一点,但实际上,程序员用git比用SVN多。

以上是关于Git 相比 svn 和其他版本管理工具的核心优势都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

随便讲讲我对于svn和git的想法

Git基本思想:从SVN转到Git

git与SVN的区别

SVN之于GIT的理论优势

git的搭建与简单实用

谈一谈git和SVN两大版本管理工具。