美文网首页
版本控制

版本控制

作者: 若兮缘 | 来源:发表于2018-12-06 23:01 被阅读162次

版本控制

版本控制是维护工程蓝图的标准作法,能追踪工程蓝图从诞生到定案的过程。
版本控制也是一种软件工程技巧,借此能在软件开发的中,确保由不同人所编辑的同一代码文件都得到同步。

作用描述

最原始的版本控制系统是纯手工控制,修改文件或者保存文件副本,比如修改一个文件从version1到version2,如果只改动一次还好,我们知道修改了什么,但是当version2的文件修改为version3甚至version4的时候,我们想知道相对于上一个版本到底做了什么修改的话比较困难,回滚的时候也很容易出错。
而版本控制系统能记录所有文件的所有版本,可以有效的追踪文件的变化,同时很容易回滚到之前某个版本的状态。
无论是个人的文件或代码管理,还是企业中的团队协作开发,版本控制工具都是必不可少的利器。

作用总结

备份文件:在服务器中保存代码,方便随时恢复
记录历史:追溯任意代码文件的任意一行在什么时间被什么人修改过
回到过去:让版本库中的任意一个文件恢复到任意一个历史版本
多端共享:多个终端都可以共享同一份代码
团队协作:方便团队协作开发,尽可能减少冲突代码不一致情况

发展历程

版本控制软件

CVS

CVS(Concurrent Versions System)版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。
CVSCopy-Modify-Merge(拷贝、修改、合并)变化表支持对文件的同时访问和修改。
CVS基于客户端/服务器的行为使其可容纳多个用户。
CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。

SVN

由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。
同样是开源而且免费的SVN修正了CVS的一-些稳定性问题,是目前用得最多的集中式版本库控制系统。

GIT

GIT(The stupid content tracker)傻瓜内容跟踪器。Linus Torvalds这样介绍。是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者机器上都是一个完整的数据库。

工具对比

集中式 vs 分布式

集中式

版本库是集中存放在中央服务器的,开发过程中,需要先从中央服务器取得最新的版本,修改代码后再将代码推送给中央服务器。
集中式特点在于必须有中央服务器,且使用过程中必须联网才能完成版本控制操作。一旦中央服务器挂掉或者数据丢失,则影响整个开发工作。

分布式

分布式版本控制抛开了中央服务器的概念,每台主机都是一个完整的版本库,使用过程可以不联网。
使用过程中多人协作可以通过相互推送自己修改的代码给对方,当然通常不会这么做,因为双方不一定在局域网内且未必能正常接收为了方便协作,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改。

主要区别

SVN版本集中管理,所有的代码都在中央服务器上。
GIT去中心化,每个服务器上都有一个完整的代码库。

相关文章

  • How to use Git

    版本控制 版本控制就是控制版本,版本控制系统帮助控制(管理)某个事物(通常指源代码)的不同版本现在流行的版本控制:...

  • Git复习

    版本控制 版本控制的意义在于记录和备份. 版本控制系统分类: 本地版本控制系统:无法协同开发 集中化版本控制系统:...

  • Git最详细篇-五星收藏

    目录 一、版本控制概要 1.1、什么是版本控制 1.2、常用术语 1.3、常见的版本控制器 1.4、版本控制分类 ...

  • idea 文件名颜色所代表的含义

    绿色,已经加入版本控制暂未提交; 红色,未加入版本控制; 蓝色,加入版本控制,已提交,有改动; 白色,加入版本控制...

  • git

    版本控制分类 本地版本控制(本地备份)、集中版本控制(代表产品svn)、分布式版本控制(代表产品git) 启动gi...

  • 版本控制

    开始大家用 Mercurial HG 软件 进行代码控制。 我在https://bitbucket.org 代...

  • 版本控制

    版本控制是一种软体工程技巧,藉以在开发的过程中,确保由不同人所编辑的统一档案都得到更新 ,记录代码变更。 目前用到...

  • 版本控制

    Git Git是一个分布式版本控制系统(Distributed Version Control System - ...

  • 版本控制

    1、建立server和client的环境,并且check out (检出)数据仓库;(只有第一次从仓库中检出是用c...

  • 版本控制

    1 什么是版本控制系统 如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是...

网友评论

      本文标题:版本控制

      本文链接:https://www.haomeiwen.com/subject/dxoacqtx.html