一、什么是版本控制器
版本控制
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。
版本控制最主要的功能就是追踪文件的变更。
版本控制器分类
集中式
版本库是集中存放在中央服务器的,工作的时候,使用自己的电脑,要先从中央服务器取得最新的版本,然后开始工作,结束后,再把自己的变更推送给中央服务器。
示例图:
缺点是必须联网才能工作,操作时每一步都需要和服务器交互数据,对网络带宽要求很高,文件过大时速度很慢
分布式
分布式版本控制系统本身没有“中央服务器”,每个人的电脑上都是一个完整的版本库。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
示例图:
区别
以 SVN(集中式),GIT(分布式)举例
集中式(SVN) | 分布式(Git) | |
---|---|---|
是否有中央服务器 | 有。开发人员需要从中央服务器获得最新版本的项目然后在本地开发,开发完推送给中央服务器。因此脱离服务器开发者是几乎无法工作的 | 没有中央服务器,开发人员本地都有 Local Repository |
网络依赖 | 必须要联网才能工作,而且对网络的依赖性较强,如果推送的文件比较大而且网络状况欠佳,则提交文件的速度会受到很大的限制 | 分布式在没有网络的情况下也可以执行commit、查看版本提交记录、以及分支操作,在有网络的情况下执行 push 到 Remote Repository |
文件存储格式 | 按照原始文件存储,体积较大 | 按照元数据方式存储,体积很小 |
是否有版本号 | 有 | 没有 |
文件存储格式 | 按照原始文件存储,体积较大 | 按照元数据方式存储,体积很小 |
分支操作的影响 | 创建新的分支则所有的人都会拥有和你一样的分支 | 分支操作不会影响其他开发人员 |
提交 | 提交的文件会直接记录到中央版本库 | 提交是本地操作,需要执行push操作才会到主要版本库 |
参考文章:
廖雪峰的官方网站
集中式(SVN)和分布式(Git)版本控制系统的简单比较
一、什么是版本控制器相关推荐
- git 版本控制器 初学习,工作中的问题及其解决方法
one day 1. 下载安装git控制器 >>>>>>(测试环境 window10)Git下载地址https://git-scm.com/downloads ...
- 项目版本控制器SVN的环境建立(Subversion,subclipse)
之所以开始用版本控制器,是因为项目开发的人越来越多的时候,记得年初,我们的团队只有两个人时候,感觉版本控制器没必要,当团队增加到5-6个人 的时候,我每天重复验证他们的代码,复制代码,不知不觉,我这个 ...
- 你了解SVN, CVS等版本控制器吗?
版本控制器SVN, CVS是两种版本控制器, 需要配套相关的SVN, CVS服务器, SCM是xcode里面配置版本控制的地方, 版本控制的原理就是A和B同时开发一个项目, A写完当天的代码之后把代码 ...
- 【原创】Git版本控制器的基本使用
关于git Git,是一个分布式版本控制软件.最初本是为了更好的管理Linux内核开发而被林纳斯·托瓦兹开发,后来因为项目开发中版本控制的强烈需求,而git也日趋成熟,最终成为了一个独立的版本控制软件 ...
- Linux——Django 开发环境部署(二)python版本控制器pyenv
python版本控制器pyenv 之前的 那篇是说明了django环境的site package完全独立出来了,但是使用的python解释器还是系统的,为了继续独立出来,甚至是达到ruby的rvm的自 ...
- 宋体查询1.mysql数据库复习加强 2.mysql事务触发器 3.mysql 索引外键加强 4.zendstudio 的安装使用 5.svn版本控制器的使用-java教程...
上班之余抽点间时出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家起一学习一下宋体查询 1.mysql数据库温习增强 1,导出mysql数据库里ecshop到d盘 mysqldump 指令和 m ...
- 集中式版本控制器和分布式版本控制器的个人理解
集中式版本控制器:SVN等 分布式版本控制器:Git等 最近看了一些版本控制器的内容,看完集中式和分布式的区别后,感觉两者其实都需要一个服务器来帮助大家进行代码的融合,在团队开发的情况下,比如使用Gi ...
- 版本控制器:SVN和Git比较
在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?今天在此详细记录下: SVN(Subversion)是集中式管理的版本控制器,而 ...
- 版本控制器(Git)
本章目标 1.版本控制器的概念[理解] 2.Git的安装和配置[掌握] 3.常用Git命令[掌握] 4.分支管理[理解] 5.码云 6.IDEA中配置版本控制器[重点掌握] 具体内容 一.了解版本控制 ...
- git (版本控制器)
集中式版本控制器 svn 一般用于公司内部版本控制器(Java) 分布式版本控制器 git 一般用于开源项目,并且可以把开源项目发布到github/gitee中 区别: SV ...
最新文章
- php判断邮箱是否合法性,php验证邮箱地址合法性
- Windows SharePoint Services 3.0 Step By Step翻译
- sql replace函数用法_esProc 的 SQL 应用方案
- 程序员的自我修养(2)——计算机网络
- html中实现类似于弹幕的效果代码,javascript实现弹幕效果
- python安装方法3.8.2_Python 3.8.2详细图文安装教程(附安装包)
- python linux调试_linux怎么调试python
- MySQL导入sql文件的三种方法
- scratch3.0接苹果小游戏
- 免费的在线PDF转换word网站推荐
- asm磁盘头全部损坏数据0丢失恢复----惜分飞
- python清理浏览器缓存_以编程方式清除边缘浏览器缓存
- tp5模型belongsTo和hasOne以及hasMany的区别与用法
- 论文笔记目录(ver2.0)
- Java - 计算两个经纬度之间的直线距离
- Juery的基本的基本操作用法
- Latex 绘制函数图像
- python文章抄袭检测_用Python写了个检测文章抄袭,详谈去重算法原理
- oracle06004,Oracle不完全恢复-主动恢复和incarnation/RMAN-20208/RMAN-06004
- VMWare快照原理(写时复制)?快照保护、快照克隆的作用?