版本控制工具的相关介绍

版本控制顾名思义就是对每一次发行的版本进行一个管理,方便后期的维护及查阅。随着项目时间的积累,版本的更新迭代,需要用一个工具去进行管理,前期老式的很多都会接触CVS,后来SVN的出现,替补掉了CVS,而现在其地位也逐渐被新的工具Git替补。

一.版本控制的基本分类

1.本地版本控制

记录文件的每次更新,可以对每个版本做一个快照或者是记录补丁文件,适合个人使用,比如说RCS。

2.集中版本控制

所有的版本数据都保存在Server或者是一个集群上,协同开发者自行从Server上同步更新或者上传自行修改后数据。但是其最致命的是:假设Server暴毙,因为整个交互过程都是依赖于此,那么会影响整个项目的开展进度,所以一般来说,会进行定期的备份,防止意外情况的发生。比方说:SVN

3.分布式版本控制

所有版本信息仓库全部同步到本地的每个开发者,方便本地查看所有历史版本,可以不连接远程仓库,进行离线本地提交,后续联网后,直接push到远程仓库就行。由于是全程本地作为暂存区,第一会占用本地空间;第二因为覆盖全版本的相关文件,暴露性比较高或者说安全隐患比较大,也正因为如此,所以Git是不能完全取代SVN的。比方说:Git

二.SVN和Git的主要区别

SVN Git
是否需要Server
是否依赖网络 完全依赖 不完全依赖
文件存储格式 按原始文件储存 按元数据储存
有无版本号
分支操作是否影响其他开发 影响 不影响
提交操作 commit直接在Server上 commit在本地上,可后续push

如果后续在笔试的过程中,刷到这样的question,这里提供一个answer

SVN是集中式版本控制系统,版本库是集中放在中央服务器上的。由于工作时,用的都是自己的电脑,所以需要先从服务器上得到最新的版本,然后去开展工作。完成后,还需要上传到服务器上,集中式版本控制系统必须进行联网才能工作,对网络带宽要求比较高。

Git是分布式版本控制系统,无需中央服务器,每台电脑就是一个完整的仓库,工作时可以不需要联网,毕竟仓库数据全部Sync在本地。具体的协同方式可以参考上图,Git可以之间看到更新了那些代码和文件,执行代码:git log

可以这样讲,Git是目前最先进的分布式版本控制系统。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2019-2024 Carrol Chen
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信