大话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
实现模式:
未完待续。。。。
大话Git系列之初识版本控制系统(1)的更多相关文章
- 大话Git系列之初识版本控制系统(2)
本次接着上次的来介绍版本控制系统,这个讲到的将是Git与Github,说一下什么是Git,什么是GitHub?他们之间的关系是什么? 1.Git 是代码管理的工具 2.GitHub 是基于Git实现的 ...
- Git 分支(分布式版本控制系统)
前言 几乎所有的版本控制系统都以某种形式支持分支.使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线.在很多版本控制系统中,这是一个略微低效的过程--常常需要完全创建一个源代码目录的 ...
- Git 基础(分布式版本控制系统)
1.Git 简史 自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标.它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统. 2.Git 基 ...
- 关于分布式版本控制系统Git与集中式版本控制系统SVN的区别
我觉得最最主要的区别就是:分布式Git主要是在本地有各个历史版本,在不联网的时候,也可以更新到最新版本和查看过去的版本,而集中式SVN是所有人都将版本上传到中央服务器,当出现断网情况的时候,用户只有一 ...
- Git 安装(分布式版本控制系统)
1.在 Windows 上安装 在 Windows 上安装 Git 也有几种安装方法. 官方版本可以在 Git 官方网站下载,打开下载会自动开始.要注意这是一个名为 Git for Windows 的 ...
- Git 别名(分布式版本控制系统)
1.Git 别名 Git 并不会在你输入部分命令时自动推断出你想要的命令.如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名.这里有一些例子你 ...
- Git 配置(分布式版本控制系统)
1.Mac Git 配置文件 既然已经在系统上安装了 Git,你会想要做几件事来定制你的 Git 环境.每台计算机上只需要配置一次,程序升级时会保留配置信息.你可以在任何时候再次通过运行命令来修改它们 ...
- [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git
[.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...
- Git版本控制系统之基本使用
最早是通过接触著名的开源社区Github了解到Git的,但一直没有系统学习过.这次下定决心从头到尾系统的学一学,也将学习过程记录于此,供大家批驳.本篇文章先从以下几个方面简单了解一下Git: Git的 ...
随机推荐
- MySql事务的简单使用
4个特性 原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节.事务在执行过程中发生错误,会被回滚(rollback)到事务开始前的状态 一致性:在事务开始前和事务结束以 ...
- 大数据理论篇 - 通俗易懂,揭秘谷歌《The Dataflow Model》的核心思想(一)
目录 前言 目标 核心的设计原则 通用的数据处理流程 切合实际的解决方案 总结 延伸阅读 最后 作者:justmine 头条号:大数据达摩院 创作不易,未经授权,禁止转载,否则保留追究法律责任的权利. ...
- AndroidStudio使用的kotlin简介
Kotlin是一种在Java虚拟机上执行的静态型别程式语言,它也可以被编译成为JavaScript原始码.它主要是由俄罗斯圣彼得堡的JetBrains开发团队所发展出来的程式语言,其名称来自于圣 ...
- 【网络安全】SSH协议科普文
写代码的木公 本文转载自:https://baijiahao.baidu.com/s?id=1612411213158569988&wfr=spider&for=pc 熟悉Linux的 ...
- gradle环境搭建
最近我在尝试了解跨平台技术的发展,首先则是想到了cordova.环境配置过程中有依赖gradle,下面简单记录了在windos10系统下搭建gradle环境的过程. 什么是gradle Gradle是 ...
- ECMAScript 5 特性
ECMAScript 5 也称为 ES5 和 ECMAScript 2009. ECMAScript 5 特性 这些是 2009 年发布的新特性: "use strict" 指令 ...
- Centos7通过yum跟源码编译安装Nginx
源码编译安装 http://nginx.org/en/download.html 到官网下载,然后用XFTP上传到root目录 把文件解压出来 tar -zxvf nginx-1.16.0.tar.g ...
- Mysql悲观锁乐观锁区别与使用场景
本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...
- SpringBoot集成swagger2.0
最近项目里要用到SpringBoot + swagger,查了其他小伙伴们的资料,或多或少有点问题,在此我再梳理一遍. 1.maven依赖 <parent> <groupId> ...
- 番茄助手 最新 Visual Assist X 适应于VS2019 VS2017 VS2015 VS2013 亲测可用
番茄助手 最新 Visual Assist X 适应于VS2019 VS2017 VS2015 VS2013 亲测可用 如图: 颜色已经改变: 下载说明: /* INSTALLATION 0) Uni ...