美文网首页
版本控制

版本控制

作者: 若兮缘 | 来源:发表于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去中心化,每个服务器上都有一个完整的代码库。

    相关文章

      网友评论

          本文标题:版本控制

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