Java后端工程师入门学习笔记——Git入门1

git相关概念

目录

git相关概念

1、版本控制

2、版本控制系统发展历史

(1)本地版本控制系统(VCS)

(2)集中化版本控制系统(CVCS)

(3)布式版本控制系统(DVCS)

3、git的前世今生


1、版本控制

本质:一种系统;

作用:记录一个或多个文件的内容变化;

目的:查阅特定版本的修订情况;

适用文件类型:任何类型(如图片、文档、代码等)。

2、版本控制系统发展历史

本地版本控制系统集中化版本控制系统分布式版本控制系统

(1)本地版本控制系统(VCS)

基本原理:依托数据库来记录文件的历次更新差异;

优点:

a)本地开发工作效率更高,更不容犯错;

缺点:

a)无法让不同系统的开发者协同工作;

b)整个项目的历史记录保存在单一位置,存在丢失风险;

典型系统:RCS;

RCS原理:每次修改上传新文件后生成一个补丁,该补丁描述了文件修订前后的具体变化,多个补丁会合成一个补丁集保存在本地硬盘上。

(2)集中化版本控制系统(CVCS)

基本原理:在本地版本控制系统的基础上增设一个单一的集中管理的中央服务器,保存所有文件的修订版本;

优点:

a)不同系统的开发者可通过客户端连接到中央服务器,下载最新文件或者提交更新;

b)开发者可以借助中央服务器看到其他人的开发内容和进度;

c)管理员可借助中央服务器调配各开发者的权限;

缺点:

a)中央服务器一旦故障则修复期间无法协同工作;

b)整个项目的历史记录保存在单一位置,存在丢失风险;

典型系统:CVS、Subversion、Perforce。

(3)布式版本控制系统(DVCS)

基本原理:客户端不只是提取/提交最新的文件快照,而是将整个文件仓库完整地镜像提取/提交,包括所有的历史记录;

优点:

a)不同系统的开发者可通过客户端连接到协同服务器,下载最新文件或者提交更新;

b)开发者可以借助协同服务器看到其他人的开发内容和进度;

c)管理员可借助协同服务器调配各开发者的权限;

d)当某个协同服务器故障时,事后可以用任意一个镜像过的本地仓库恢复所有文件及其记录;

e)每一次的克隆操作都是一次对文件仓库的完整备份;

g)部分该类系统可指定与其他若干不同的远程代码仓库进行交互,其作用是在同一个项目中,使得不同工作小组的开发者能够进行相互协作;

缺点:

笔者学习中,暂时不知,欢迎评论区讨论;

典型系统:git、Mercurial、Bazaar、Darcs。

3、git的前世今生

(1)1991年,Linus创建开源Linux;

(2)1991-2002年期间, Linus 本人以手工方式合并世界各地的志愿者通过 diff 的方式发来的源代码文件(因Linux坚定的开源精神,所以坚决反对使用收费的集中式版本控制系统,免费的系统也因为速度慢和需要联网而被Linux拒之门外);

(3)2002年,代码库过大,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码;(Linux 社区得到了BitMover 公司的免费授权);

(4)2005年,BitMover 公司发现社区有人试图破解BitKeeper的协议,免费使用权被回收;

(5)2005年,Linux 开源社区吸取使用BitKeeper 时的经验教训,仅用两周时间就使用C创造了一个分布式版本控制系统git;

(6)2008年,GitHub 网站正式上线,为开源项目免费提供 Git 存储,无数开源项目开始迁移至 GitHub,包括jQueryPHPRuby等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值