初学开发必看:何为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的更多相关文章
- Java编程思想重点笔记(Java开发必看)
Java编程思想重点笔记(Java开发必看) Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...
- vagrant三网详解(团队/个人开发必看) 转
vagrant三网详解(团队/个人开发必看) Vagrant 中一共有三种网络配置,下面我们将会详解三种网络配置各自优缺点. 一.端口映射(Forwarded port) 顾名思义是指把宿主计算机 ...
- Linux驱动开发必看详解神秘内核(完全转载)
Linux驱动开发必看详解神秘内核 完全转载-链接:http://blog.chinaunix.net/uid-21356596-id-1827434.html IT168 技术文档]在开始步入L ...
- [转载] PHP开发必看 编程十大好习惯
适当抽象 但是在抽象的时候,要避免不合理的抽象,有时也可能造成过渡设计,现在只需要一种螺丝刀,但你却把更多类型的螺丝刀都做出来了(而且还是瑞士军刀的样子..): 一致性 团队开发中,可能每个人的编程风 ...
- 【资料目录收藏】.NET开发必看资料53个 经典源码77个
简单描述:为大家整理了下载中心.net资料,都是比较热的,好评率比较高的,做了一个可收藏的下载目录,希望大家喜欢~ 基于.net构架的留言板项目大全源码 http://down.51cto.com/z ...
- .NET开发必看资料53个+经典源码77个
目录0豆下载:http://down.51cto.com/data/426019 附件预览: 基于.net构架的留言板项目大全源码 http://down.51cto.com/zt/70 ASP.ne ...
- Web前端开发必看的100道大厂面试题
1. 说说gulp和webpack的区别 开放式题目 Gulp强调的是前端开发的工作流程.我们可以通过配置一系列的task,定义task处理的事务(例如文件压缩合并.雪碧图.启动server.版本控制 ...
- 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍
C++游戏服务器开发常用工具介绍 在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用.庄子有云,"吾生也有涯,而知也无 ...
- ASP.NET MVC开发必看系列
一.关于HTTP协议的那些事 这可以说我们开发WEB程序的空气,推荐不断温故知新! HTTP协议 (一) HTTP协议详解 HTTP协议 (二) 基本认证 HTTP协议 (三) 压缩 HTTP协议 ( ...
- [浪风分享] PHP开发必看 我现在是这样编程的
我在做什么 曾经,我试过接到一些需求.一眼带过后,脑袋马上随着高昂的斗志沉溺在代码的世界中 ,马不停蹄地敲着键盘直到最后测试的完成.我从思绪中恢复过来,乍一看自己写的功能,和需求差了十万八千里,我TM ...
随机推荐
- [ABC201E] Xor Distances 题解
Xor Distances 题目大意 给定一颗带边权无根树,定义 \(\text{dis}(i,j)\) 表示 \(i,j\) 两点在树上的最短路径的边权的异或和.求: \[\sum_{i=1}^n\ ...
- 谈谈selenium4.0中的相对定位
相对定位历史 2021-10-13 发布的 selenium 4.0 开始引入,selenium 3.X是没有的 implement relative locator for find_element ...
- [ABC276Ex] Construct a Matrix
没有题解,所以来写一篇. Description 构造一个 \(N\times N\) 的矩阵 \(A\),其中 \(A_{i,j}\in {0,1,2}\),要求同时满足 \(Q\) 条限制. 每条 ...
- P1182 数列分段 Section II 题解
Problem 考察知识点:二分.贪心. 题目描述 对于给定的一个数组,现要将其分成 \(M\) 段,并要求每段连续,且每段和的最大值最小. 思路 二分答案出每段和最大值的最小值,然后贪心检验是否满足 ...
- tailwindcss 选型,以及vue配置使用
一.为什么选择tailwindcss? Tailwind CSS 是一个受欢迎的.功能丰富的CSS框架,它与传统的CSS框架(如Bootstrap)有些不同.以下是一些人们通常对于Tailwind C ...
- QT(1)- QString
QT(1)- QString 1 简介 在Qt中表示字符串的类是QString类,它存储字符串是采用的Unicode码,编码方式是使用UTF-16来进行编码的,也就是一个字符(两个字节),一个中文汉字 ...
- 花了三年时间开发的开源项目,终于500 个 Star 了!
waynboot-mall 商城项目从疫情开始初期着手准备,到现在已经经过了 3 年多的时间,从项目初期到现在,一个人持续迭代,修复漏洞,添加功能,经历了前端开发工具从 vue2.vue-cli 切换 ...
- mediakit 源码 轻微微 学习总结
mediakit 源码 轻微微 学习总结 概要 项目地址:https://github.com/ZLMediaKit/ZLMediaKit 此项目我们把他做为一个流媒体服务器,我们会有srt和rtsp ...
- Ansible自动化部署工具-role模式安装filebeat实际案例分析
大家好,我是蓝胖子,前面一节我简单的讲了讲Ansible的架构和编排任务的语法,可以发现,通过playbook方式编排任务时,能够将任务文档化,但是在面对比较复杂且不同业务的任务编排时,维护playb ...
- CD74HC4067高速CMOS16通道模拟多路复用器实践
咱们在玩arduino或stm32.esp8266时,有时会遇到板子模拟口不够用的情况,这个时候CD74HC4067就派上用场了,它可以将16路数字/模拟信号通过4数字+1模拟=5口来读取. 这货长这 ...