初学开发必看:何为Git,何为SVN

Posted 华为云开发者联盟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学开发必看:何为Git,何为SVN相关的知识,希望对你有一定的参考价值。

摘要:在和客户交流代码开发的过程中,时常会先入为主的交流起Git;但在和很多中小型企业交流的过程,发现SVN的模式也被使用得很频繁。那么两者的具体差异有哪些呢?

本文分享自华为云社区《Git VS SVN》,作者:gentle_zhou。

在和客户交流代码开发的过程中,时常会先入为主的交流起Git;但在和很多中小型企业交流的过程,发现SVN的模式也被使用得很频繁。那么两者的具体差异有哪些呢?

什么是Git

Git是一个分散式的版本控制软体,最初由瑞典籍Linus Benedict Torvalds创作,在2005年以GPL的条款授权方式出现。最初其目的是为了更好地管理Linux核心开发。Git把数据看做是对小型文件系统的一系列快照(快照流);每当用户提交更新或则保存项目状态的时候,Git就会对当时的全部文件创建一个快照并保存这个快照的索引;为了效率,如果文件没有做修改,Git就不再重新存储该文件,而是只保留一个链接指向之前存储的文件。

随时间改变,Git内对数据的快照:

什么是SVN

SVN,Apache Subversion的简称,是一个开放源代码的版本控制系统,开发者是Apache软件基金会,在2000年发了初始版本。SVN是以文件变更列表的方式来存储信息,将存储在他们那的信息看做是一组基本文件和每个文件随时间逐步累积的差异;这些数据会放置在一个中央仓库中。

存储每个文件与初始版本的差异:

两者差异对比

1、Git是分布式的版本管理控制器(代码开发方便),便于开源项目的开发;SVN是集中式的版本管理控制器(文档管理方便),便于企业内部并行集中开发
2、Git支持单机操作,服务器即使有故障也可在本地仓库工作(除了push和pull/fetch,其余操作都可以在本地操作);SVN的服务器如果出现故障,用户就无法与之交互(所有SVN操作都需要和中央仓库交互)
3、Git每个开发者本地都是一套完整的版本库,记录着所有信息;SVN需要定期整体备份,安全性较差
4、Git本地创建的分支不会影响其他人,适合多分支并行开发;SVN创建的分支会影响团队里所有人,多分支并行开发任务较重且繁琐
5、Git提交过程不会被打断,有冲突会标记冲突文件;SVN提交如果有冲突会打断整个动作,提交的快没影响,提交的慢,需要先行解决冲突再提交
6、Git没有严格的权限管理控制,只有账号角色的划分;SVN的权限管理很严格,可以按照组、个人针对子目录进行权限控制

参考资料

1、https://www.geeksforgeeks.org/difference-between-git-and-svn/
2、https://git-scm.com/book/zh/v2/起步-Git-是什么?
3、https://zh.wikipedia.org/zh-tw/Git
4、https://zh.wikipedia.org/wiki/Subversion

点击关注,第一时间了解华为云新鲜技术~

以上是关于初学开发必看:何为Git,何为SVN的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何为推送通知签署 Mac 应用程序?

如何为 tortoise svn 中的日志应用多个过滤器(例如修订号、文件名、开发人员/编码人员)?

如何为两支球队的比赛找到最佳解决方案?

如何为 svn 配置 HTTP 代理

SVN中如何为文件夹中的所有文件加锁

如何为偏远地区提供稳定的无线宽带连接