zoukankan      html  css  js  c++  java
  • 大话Git系列之初识版本控制系统(1)

    前言:何谓版本控制系统呐?有两种说法:一种叫法为SCM,==source code management (源代码管理系统)另一种说法为VCS,==version control system(版本控制系统),既然两种叫法都可以的话,姑且把她叫成版本控制系统吧,从名称不难看出此系统一是用来解决代码的其二是用来更新版本的。

    发展历史

    刚开始并没有版本控制系统一说,很多人编写代码的过程中会把代码存起来,这样越来越多的代码写在一个文件中,带来了太大的冗余,也对修改代码带来了很大的不便捷的情况,在一本《程序员修炼之道:从小工到专家》书中提到一个例子说老板问下面的员工说昨天的进度怎么样,代码有没有做出来?其中有点员工会说老板我没做出来,有的员工却说自己做出来了,但是被猫吃了。WHAT!!!这尼玛。。。所以后来慢慢为了解决在开发过程中,经常需要对一个文件进行修改甚至删除,但是我们又希望能够保存这个文件的历史记录,如果通过备份,那么管理起来会非常的复杂这些问题,提出了版本控制系统。

    什么是版本控制系统?

    版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统管理,我们开发当中的文件或者资源,特别是多人的开发时更是离不开!

    版本控制系统实现哪些功能呢?

    记录文件的所有的历史变化

    随时可恢复到任何一个历史状态

    多人协作开发或修改

    对修改后的错误恢复

    多功能的并行开发

    版本控制系统的分类?

    本地版本控制系统(Local vcs

    优点:简单,管理文本文件

    缺点:只适合少量的文件 不支持网络 不支持基于项目的管理,无法实现多人协作 支持的文件类型比较单一

    主要的代表:RCS(Revision C ontrol System

    实现模式:

    集中化版本控制系统(Centralized vcs

    优点:适合多人团队协作开发 代码集中管理 

    缺点:出现单点故障,恢复难度大,必须连接网络,无法单机本地工作

    代表:CVS(Concurrent Version System) SUBversion

    实现模式:

    分布式版本控制系统(Distributed VCS

    优点:适合多人团队协作开发,代码集中化管理,可以离线工作,每个计算机都有一个完整仓库 (每个计算机都是一个仓库)

    代表:Git,Mercurial

    实现模式:

    未完待续。。。。

  • 相关阅读:
    如何将SLIC集成到ESXi中
    System Board Replacement Notice
    分发器上的会话代理进程控制脚本使用说明
    lib和dll的区别与使用
    vs2017自动生成的#include“stdafx.h”详解及解决方案
    禅定是否一定要打坐,为什么?
    PE文件解析 基础篇
    灵修书籍
    HDU 2546 饭卡(01背包裸题)
    codeforces 767A Snacktower(模拟)
  • 原文地址:https://www.cnblogs.com/yxd000/p/11264613.html
Copyright © 2011-2022 走看看