版本控制

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

版本控制最主要的功能就是追踪文件的变更。

版本控制器分类

集中式

版本库是集中存放在中央服务器的,工作的时候,使用自己的电脑,要先从中央服务器取得最新的版本,然后开始工作,结束后,再把自己的变更推送给中央服务器。

示例图:

缺点是必须联网才能工作,操作时每一步都需要和服务器交互数据,对网络带宽要求很高,文件过大时速度很慢

分布式

分布式版本控制系统本身没有“中央服务器”,每个人的电脑上都是一个完整的版本库。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。

在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

示例图:

区别

以 SVN(集中式),GIT(分布式)举例

集中式(SVN) 分布式(Git)
是否有中央服务器 有。开发人员需要从中央服务器获得最新版本的项目然后在本地开发,开发完推送给中央服务器。因此脱离服务器开发者是几乎无法工作的 没有中央服务器,开发人员本地都有 Local Repository
网络依赖 必须要联网才能工作,而且对网络的依赖性较强,如果推送的文件比较大而且网络状况欠佳,则提交文件的速度会受到很大的限制 分布式在没有网络的情况下也可以执行commit、查看版本提交记录、以及分支操作,在有网络的情况下执行 push 到 Remote Repository
文件存储格式 按照原始文件存储,体积较大 按照元数据方式存储,体积很小
是否有版本号 没有
文件存储格式 按照原始文件存储,体积较大 按照元数据方式存储,体积很小
分支操作的影响 创建新的分支则所有的人都会拥有和你一样的分支 分支操作不会影响其他开发人员
提交 提交的文件会直接记录到中央版本库 提交是本地操作,需要执行push操作才会到主要版本库

参考文章:
廖雪峰的官方网站
集中式(SVN)和分布式(Git)版本控制系统的简单比较

一、什么是版本控制器相关推荐

  1. git 版本控制器 初学习,工作中的问题及其解决方法

    one  day 1.  下载安装git控制器 >>>>>>(测试环境 window10)Git下载地址https://git-scm.com/downloads ...

  2. 项目版本控制器SVN的环境建立(Subversion,subclipse)

    之所以开始用版本控制器,是因为项目开发的人越来越多的时候,记得年初,我们的团队只有两个人时候,感觉版本控制器没必要,当团队增加到5-6个人 的时候,我每天重复验证他们的代码,复制代码,不知不觉,我这个 ...

  3. 你了解SVN, CVS等版本控制器吗?

    版本控制器SVN, CVS是两种版本控制器, 需要配套相关的SVN, CVS服务器, SCM是xcode里面配置版本控制的地方, 版本控制的原理就是A和B同时开发一个项目, A写完当天的代码之后把代码 ...

  4. 【原创】Git版本控制器的基本使用

    关于git Git,是一个分布式版本控制软件.最初本是为了更好的管理Linux内核开发而被林纳斯·托瓦兹开发,后来因为项目开发中版本控制的强烈需求,而git也日趋成熟,最终成为了一个独立的版本控制软件 ...

  5. Linux——Django 开发环境部署(二)python版本控制器pyenv

    python版本控制器pyenv 之前的 那篇是说明了django环境的site package完全独立出来了,但是使用的python解释器还是系统的,为了继续独立出来,甚至是达到ruby的rvm的自 ...

  6. 宋体查询1.mysql数据库复习加强 2.mysql事务触发器 3.mysql 索引外键加强 4.zendstudio 的安装使用 5.svn版本控制器的使用-java教程...

    上班之余抽点间时出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家起一学习一下宋体查询 1.mysql数据库温习增强 1,导出mysql数据库里ecshop到d盘 mysqldump 指令和 m ...

  7. 集中式版本控制器和分布式版本控制器的个人理解

    集中式版本控制器:SVN等 分布式版本控制器:Git等 最近看了一些版本控制器的内容,看完集中式和分布式的区别后,感觉两者其实都需要一个服务器来帮助大家进行代码的融合,在团队开发的情况下,比如使用Gi ...

  8. 版本控制器:SVN和Git比较

    在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?今天在此详细记录下: SVN(Subversion)是集中式管理的版本控制器,而 ...

  9. 版本控制器(Git)

    本章目标 1.版本控制器的概念[理解] 2.Git的安装和配置[掌握] 3.常用Git命令[掌握] 4.分支管理[理解] 5.码云 6.IDEA中配置版本控制器[重点掌握] 具体内容 一.了解版本控制 ...

  10. git (版本控制器)

    集中式版本控制器    svn 一般用于公司内部版本控制器(Java) 分布式版本控制器     git  一般用于开源项目,并且可以把开源项目发布到github/gitee中 区别:      SV ...

最新文章

  1. php判断邮箱是否合法性,php验证邮箱地址合法性
  2. Windows SharePoint Services 3.0 Step By Step翻译
  3. sql replace函数用法_esProc 的 SQL 应用方案
  4. 程序员的自我修养(2)——计算机网络
  5. html中实现类似于弹幕的效果代码,javascript实现弹幕效果
  6. python安装方法3.8.2_Python 3.8.2详细图文安装教程(附安装包)
  7. python linux调试_linux怎么调试python
  8. MySQL导入sql文件的三种方法
  9. scratch3.0接苹果小游戏
  10. 免费的在线PDF转换word网站推荐
  11. asm磁盘头全部损坏数据0丢失恢复----惜分飞
  12. python清理浏览器缓存_以编程方式清除边缘浏览器缓存
  13. tp5模型belongsTo和hasOne以及hasMany的区别与用法
  14. 论文笔记目录(ver2.0)
  15. Java - 计算两个经纬度之间的直线距离
  16. Juery的基本的基本操作用法
  17. Latex 绘制函数图像
  18. python文章抄袭检测_用Python写了个检测文章抄袭,详谈去重算法原理
  19. oracle06004,Oracle不完全恢复-主动恢复和incarnation/RMAN-20208/RMAN-06004
  20. VMWare快照原理(写时复制)?快照保护、快照克隆的作用?

热门文章

  1. SOSO移动服务大厅项目分析
  2. 【K8S集群安装二】K8S集群安装步骤
  3. 销售人员必看~~三个经典电话销售案例
  4. html5设置谷歌浏览器兼容性,google浏览器
  5. Google(谷歌)博客搜索中文测试版发布
  6. IBus拼音无法选择候选词故障
  7. ZincSearch轻量级全文搜索引擎入门到
  8. java 分页导入_Java 插入分页符和分节符到Word文档
  9. python 对 excel 进行合并与去重操作
  10. 对勾和叉怎么打_方框里打钩和叉符号怎么输入?N种方法,总有一种适合你!-word里面怎么打勾...