Git和Subversion

Anonim

虽然Subversion(SVN)存储库与Git存储库类似,但两者之间的差异非常微妙。两者都是两种最流行的版本控制系统,可用于跟踪源代码随时间的变化,但它们在架构方面确实存在公平的差异。他们可以做类似的事情,如标记和分支,但他们在存储事物的方式上有很大的不同。 Git是一个免费的开源版本控制系统,是在GNU许可下发布的,而SVN是一个在开源许可下分发的集中版本控制系统。本文重点介绍了两者之间的一些主要差异。

什么是Git?

最初由Linus Torvalds使用名为BitKeeper的专有DVCS开发Linux内核,Git在开发人员社区中引入了一个新级别的协作编码。 Git是近千个项目中使用的最受欢迎的工具之一,并被全球数百万开发人员采用。它是一个分布式版本控制系统,旨在通过维护一种称为本地存储库的特殊数据库来密切关注源代码的变化,该存储库是中央存储库的精确克隆,允许用户存储当前和以前的版本历史记录。本地计算机中的文件。 Git的主要优点是它不依赖于网络访问来确保内容的完整性。

什么是Subversion?

Subversion或SVN是一个免费的开源版本控制系统,用于管理和存储文件,以及在集中式服务器中随时间变化的文件。它是在Apache的许可下作为开源分发的。 SVN于2000年由CollabNet创建,已经存在了十多年,并且作为开源社区和企业生态系统中成功的VCS工具继续广泛采用。与Git不同,SVN将文件的版本历史存储在中央服务器中。它在中央存储库中创建了作为目录的分支。当用户想要对代码进行更改时,他们会从自己的计算机上进行更改,完成后,他们会将代码推送回中央存储库。

Git和Subversion之间的区别

Git和Subversion的基础知识

虽然两者都是两个最流行的开源版本控制系统软件,用于密切关注源代码随时间的变化,但它们彼此非常不同。 Git是一个分布式版本控制系统,它使用分布式系统来编目项目文件的所有版本。另一方面,Subversion(svn)是在开源许可下分发的集中式版本控制和修订控制系统。

Git和Subversion的存储库

Git是一个分布式版本控制系统,它意味着而不是使用集中式服务器来存储和管理源代码,它创建了一个本地存储库,它只是中央存储库的克隆,它允许开发人员在本地更改整个事物。本地存储库包括从版本历史到分支到元数据,一切的所有内容。另一方面,当开发人员提交subversion时,他们会将所有更改发送回中央存储库。

Git和Subversion的分布

当用户在Git中检出存储库时,他们会完整地克隆存储在本地计算机上的所有内容。他们需要“推送”对代码所做的更改以与其他用户共享,或“拉”以将其与远程存储库同步。这使得多个用户可以轻松地进行协作,而不会干扰中央存储库。在subversion中,每个用户通过分支共享相同的中央存储库。

Git与Subversion的网络可靠性

Git是最不可靠的网络访问,因为它的大多数操作都可以脱机使用。用户可以进行合并,转换和分支,甚至不用担心网络访问。但是,仅当用户需要将其本地存储库与中央存储库同步时,才需要网络。另一方面,Subversion需要对其大多数操作进行网络访问,因为它没有本地存储库来本地存储更改。

Git和Subversion的内容完整性

在存储之前,Git中的所有内容都使用SHA-1哈希算法进行加密校验求和,以确保代码内容的健壮性。如果没有Git知道它,几乎不可能改变代码的内容。相反,Subversion没有散列内容,这意味着它不能保证在网络或磁盘发生故障时的内容完整性。在内容完整性方面,Git无疑是更好的选择。

Git与Subversion:比较图表

Git对Subversion的总结

Git无疑是最受欢迎和广泛使用的版本控制系统之一,专门用于处理从小型项目到大型项目的所有内容。它是一个开源的分布式版本控制系统,用于在本地存储库中随时间存储和维护源代码的变化,这只是中央存储库的克隆。 SVN也是一个版本控制系统,用于基本相同的目的,除了它们存储的方式。与Git不同,SVN使用集中式服务器来维护当前和以前版本的文件,如源代码,文档,网页等.Git对SVN的一个很大的优势是Git用户可以拥有版本控制,甚至不用担心网络访问在SVN中极不可能。