虽然Subversion(SVN)存储库与Git存储库相似,但是两者之间的区别非常微妙。 两者都是可用于跟踪源代码随时间变化的两个最受欢迎的版本控制系统,但是它们在体系结构方面确实有相当大的差异。 他们可以做类似的事情,例如标记和分支,但是它们在存储方式上有很大的不同。 Git是在GNU许可下分发的免费的开源版本控制系统,而SVN是在开源许可下分发的集中式版本控制系统。 本文重点介绍了两者之间的一些关键区别。
什么是Git?
Git最初是由Linus Torvalds使用称为BitKeeper的专有DVCS为Linux内核的开发而创建的,它在开发人员社区中引入了新的协作编码水平。 Git是几乎成千上万个项目中使用的最受欢迎的工具之一,并已为全球数百万开发人员所采用。它是一个分布式版本控制系统,旨在通过维护一种称为本地存储库的特殊数据库来随时随地关注源代码的更改,该数据库是中央存储库的精确克隆,允许用户存储当前版本和以前版本的历史记录文件在其本地计算机上。 Git的主要优点是它的操作不依赖于网络访问,从而确保了内容的完整性。
什么是Subversion?
Subversion或SVN是一个免费的开源版本控制系统,用于管理和存储文件,以及在集中式服务器中对文件进行的更改。它在Apache的许可下作为开源分发。 SVN由CollabNet于2000年创立,已经存在了十多年,并且一直作为开源社区和企业生态系统中成功的VCS工具得到广泛采用。与Git不同,SVN将文件的版本历史记录存储在集中式服务器中。它在中央存储库内部以目录形式创建分支。当用户想要对代码进行更改时,他们从自己的计算机上进行更改,完成后,他们将代码推回到中央存储库中。
Git和Subversion的区别
Git和Subversion的基础
两者都是两个最受欢迎的开源版本控制系统软件,用于监视源代码随时间的变化,但它们彼此之间却有很大不同。 Git是一个分布式版本控制系统,它使用分布式系统对项目文件的所有版本进行分类。另一方面,Subversion(svn)是根据开源许可证分发的集中版本控制和修订控制系统。Git和Subversion的存储库
Git是一个分布式版本控制系统,它不使用集中式服务器来存储和管理源代码,而是创建一个本地存储库,该存储库不过是中央存储库的克隆,允许开发人员在本地进行整个更改。本地存储库包括从版本历史记录到分支再到元数据的所有内容。另一方面,当开发人员致力于颠覆时,他们会将所有更改发送回中央存储库。Git的分布和颠覆
当用户在Git中检出存储库时,他们将获得完整的完整副本,并将其存储在本地计算机上。他们需要“push”对代码所做的更改以与其他用户共享,或“pull”以将其与远程存储库同步。这使多个用户可以轻松进行协作而不会干扰中央存储库。在Subversion中,每个用户都通过分支共享同一中央存储库。Git和Subversion的网络可靠性
Git对网络访问的依赖性最小,因为它的大部分操作都可以脱机使用。用户可以进行合并,变基和分支,甚至不必担心网络访问。但是,仅当用户需要将其本地存储库与中央存储库同步时才需要网络。另一方面,Subversion的大部分操作都需要网络访问权限,因为它没有本地存储库来将更改存储在本地。Git和Subversion的内容完整性
Git中的所有内容在存储之前都使用SHA-1哈希算法进行加密校验和,以确保代码内容的鲁棒性。实际上,在Git不了解的情况下,几乎不可能更改代码的内容。相反,Subversion没有散列的内容,这意味着在网络或磁盘出现故障的情况下,它不能保证内容的完整性。在内容完整性方面,Git无疑是更好的选择。
总结
Git无疑是最流行和使用最广泛的版本控制系统之一,它专门设计用于处理从小型到大型项目的所有事情。 这是一个开放源代码的分布式版本控制系统,用于随着时间的推移在本地存储库中存储和维护源代码中的更改,这些只是中央存储库的克隆。 SVN还是一个版本控制系统,除了它们存储内容的方式外,还用于基本相同的目的。 与Git不同,SVN使用集中式服务器来维护文件的当前版本和先前版本,例如源代码,文档,网页等。Git与SVN相比的一大优势是Git用户可以拥有版本控制权,甚至不必担心网络 访问在SVN中极不可能。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Git和Subversion
本文链接:https://www.vsdiffer.com/vs/git-vs-subversion.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。