初学开发必看:何为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
相关文章
- 1分钟解决git clone 速度慢的问题
- Git 学习(二)---- 分支及协作开发
- Git服务器端搭建
- Git分布式版本控制工具学习(五)
- git强制删除本地分支_Git分支
- git 自己搭建服务器_github搭建服务器
- Git 上传项目至 Github 超简单方法!
- git 本地文件上传 github || gitee
- git 无法提交空目录 ? (.gitkeep 文件的作用)
- Git局域网内仓库搭建
- git 统计一段时间内提交的代码行数
- 【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )
- 【Git】Git 分支管理 ( 创建并切换分支 | 查看分支 git branch | 合并分支 git merge dev | 删除分支 git branch -d dev )
- 【错误记录】git clone 报错 ( fatal: unable to access ‘https...‘:gnutls_handshake() failed: Error in the pu )
- Linux快速配置Git环境(linux配置git)
- 学习Linux使用Git进行版本控制(linux使用git命令)
- Linux安装Git:简易指南(linux下安装git)
- Linux安装Git简易教程(linux 下载git)