游戏攻略网
当前位置: 首页 游戏攻略

版本控制工具有哪些(常见的版本控制软件)

时间:2023-08-05 作者: 小编 阅读量: 1 栏目名: 游戏攻略

CVS存在的问题不支持原子化提交,会导致客户端向服务器端提交了不完整的数据,还有网络传输效率低等。2005年4月6日,项目发布。2005年4月18日,发生第一个多分支合并。反之,Git更像是把数据看作是对小型文件系统的一组快照。安全性集中式CVS假定服务器是安全的。强壮的分布库全是服务器数据最安全;无带宽和性能瓶颈。数据的完整性Git数据、提交全部使用SHA1哈希,以保证完整性,甚至提交可以使用PGP签名。

版本控制工具有哪些?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统,方便查看更改历史,备份以及恢复以前的版本,保证多人协作不出问题,今天小编就来聊一聊关于版本控制工具有哪些?接下来我们就一起去研究一下吧!

版本控制工具有哪些

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统,方便查看更改历史,备份以及恢复以前的版本,保证多人协作不出问题。

1,原始的版本控制

  • 版本控制工具的黑暗时代:
    • 最原始的版本控制是纯手工的版本控制:修改文件,保存文件副本;
    • 保存副本命名随意,版本难辨新旧,不能辨别每一版的修改内容。

2,版本控制起源:diff & patch

  • 在最初的版本控制软件出现之前,其实已经有了比较好用的源码比较与打补丁的工具:diff和patch。
  • Linus Torvalds(Linux之父)也对这两个工具偏爱有加。
  • 在1991-2002年之间,即使CVS出现之后,Linus一直使用diff和patch管理着Linux的代码。
  • diff与patch是用于源码版本控制中的两个最基本的概念。
  • CVS(Concurrent Versions System):协作版本系统。

2.1,Diff简介

  • diff用来比较两个文件或者目录之间的差异。

2.2,Patch简介

  • patch是diff的反向操作
  • 我们把上述差异结果保存到文件中,例如:diff.txt中,那么这个diff.txt就可以用来从left.c推算出right.c的内容,反之亦可。

通过diff.txt,把left.c变成right.c的内容:

$ patch left.c diff.txt
  • 上面执行的命令的意思是,把diff.txt应用到left.c文件上,命令结束后left.c与right.c中的内容是一样的。

通过diff.txt,把right.c变成原来left.c的内容:

$ patch -R right.c diff.txt
  • 上面执行的命令中多了一个-R,其代表的意思是把diff.txt采用反向的方式,应用到right.c上,命令结束后right.c与left.c中原来的内容是一样的。

3,RCS:最早期的本地版本控制工具

  • RCS(Revision Control System)
  • RCS作为非常古老的版本工具,远远在SVN和已经退役的CVS之前,它的古老程度应该比Web开发的ASP前代的CGI还要更久远。
  • 如果想对版本管理实现方式进行深入研究的话,研究RCS是一种最为简单的入手方式。
  • RCS采用把diff的集合,采用RCS自己的格式保存到磁盘中(可以通过diff -n left.c right.c产生RCS格式的diff内容),能通过这些diff集合,重新回到文件修改的任何历史中的点。

4,CVS & SVN:集中式版本控制工具

CVS简介

  • CVS(Concurrent Versions System)诞生与1985年,有史以来第一个被大规模使用的版本控制工具。CVS的出现让工程师可以协同工作。

CVS存在的问题

  • 不支持原子化提交,会导致客户端向服务器端提交了不完整的数据,还有网络传输效率低等。

SVN诞生

  • SVN(Subversion)目的是创建一个更好用的版本控制以取代CVS。优化了服务器上内容的存储,实现了原子提交等。

SVN存在的问题

  • 在局域网之外使用SVN,单是查看日志、提交数据等操作的延迟,就足以让基于广域网协同工作的团队抓狂了。

集中式版本控制存在的问题

  • 狭窄的提交通道提交排队,不能同时修改,提交缺乏质量控制。缺乏代码门禁,在本地代码提交到服务器之间缺少检查防护。一种解决方案:Rietveld提供旁路检查
  • 数据安全性差单点故障黑客攻击

5,Git:Linus的第二个伟大作品

5.1,Git起源

  • Linux之父Linus是坚定的CVS反对者,他也同样地反对SVN。2002年Linus顶着开源社区精英们的口诛笔伐,选择了一个商业版本控制系统BitKeeper作为Linux内核的代码管理工具。和CVS/SVN不同,BitKeeper是属于分布式版本控制系统。
  • Git诞生大事件2005年4月3日,开始开发Git。2005年4月6日,项目发布。2005年4月7日,Git就可以作为自身的版本控制工具了。2005年4月18日,发生第一个多分支合并。2005年4月29日,Git的性能就已经达到了Linus的预期。2005年6月16日,Linux核心2.6.12发布,那时Git已经在维护Linux核心的源代码。

5.2,集中式 VS 分布式

集中式 VS 分布式(1):记录差异还是记录快照

  • Git和其他版本控制系统(包括Subversion和近似工具)的主要差别在于Git对待数据的方法。
  • 概念上来区分,其它大部分系统以文件变更列表的方式存储信息。
  • 这类系统(CVS、Subversion、Perforce、Bazaar等等)将保存的信息看作是一组基本文件和每个文件随时间逐步积累的差异。
  • Git不按照以上方式对待或保存数据。反之,Git更像是把数据看作是对小型文件系统的一组快照。
  • 每次提交更新,或在Git中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。
  • 为了高效,如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。Git对待数据更像是一个快照流。

集中式 VS 分布式(2):脆弱的中央库 VS 强壮的分布库

  • 脆弱的中央库备份的重要性集中式CVS存在单点故障,备份极其重要。服务器压力基本上所有的操作需要与服务器交互,操作受限于带宽,不能移动办公。安全性集中式CVS假定服务器是安全的。假定成立吗?存在单点故障,黑客攻击等。不适合开源项目强调集中管理,适合人数不多的项目。
  • 强壮的分布库全是服务器数据最安全;无带宽和性能瓶颈。提交为本地操作快;全离线操作;编码不会被冲突打断;能够移动办公。数据的完整性Git数据、提交全部使用SHA1哈希,以保证完整性,甚至提交可以使用PGP签名。工作模型适合分布式开发,强调个体。Git容灾示例kernel.org 2011 attack(2011.8-2011.11)宇宙射线反转磁盘一个比特的数据修复

5.3,选择合适的版本控制工具

  • SVN不适合的领域跨地域的协同开发对代码的高质量追求和代码门禁
  • Git不适合的领域不适合Word等二进制文档的版本控制,因为:Git无锁定/解锁模式,故不能排他式修改。整体的读授权,不能将读授权精细到目录级别,解决方案:版本库按照目录拆分。

6,结语:Git是什么

  • Git是一个版本控制工具,而且是一个开源的分布式版本控制工具。
  • 按照Linus本人的描述,Git的很多命令设计是来源于BitKeeper,但是Git有更多属性:极快的速度简单的设计对非线性开发模式的强力支持(允许成千上万并行开发的分支)完全分布式有能力高效管理类似Linux内核一样的超大规模项目(速度和数据量)

7,小结

  • 版本控制工具的发展历史经过:原始人工维护状态,本地RCS,集中式如CVS、SVN和分布式如Git。
  • 版本控制工具提供了协作开发的能力,借助它们我们可以回到任何时间的代码状态。
  • 集中式版本控制工具,几乎所有的动作都需要服务器参与,并且数据安全性与服务器关系很大。
  • Git是分布式版本控制工具,除了与服务器之间进行按需同步之外,所有的提交操作都不需要服务器。
    推荐阅读
  • steam棋牌游戏推荐(幸运之夜新版本亮相TGC)

    steam棋牌游戏推荐12月1日,2017腾讯游戏嘉年华正式在成都开幕,腾讯的VR社交游戏《幸运之夜》在现场发布了最新版本。VR《幸运之夜》在TGC2017上惊艳亮相《幸运之夜》新版本发布邀请好友一起游戏今年7月底,《幸运之夜》正式在Steam发布,并推出了首款游戏作品“德州扑克”。今年的TGC2017现场,《幸运之夜》全新版本便带来了对互动性方面的提升。

  • 儿童睡前故事卖火柴的小女孩大全(卖火柴的小女孩)

    在长发公主的故事里,兔子小姐变成了手持宝剑的骑士,穿过了山川和河流,战胜了地狱恶犬,最终救出了长着一头金黄色长发的熊猫先生。随着一阵空间的波动,熊猫先生和兔子小姐来到了冰天雪地的圣诞节。小女孩被这突如其来的变化惊呆了。熊猫先生没有回答,轻轻摸了摸小女孩的头。小女孩点燃了第二根火柴。熊猫先生和兔子小姐则来到壁炉前,商量起小女孩最后一个愿望。熊猫先生蹲下来,握起小女孩的手。

  • 怎样做ppr管快一点(PPR管安装方法及技巧)

    怎样做ppr管快一点PPR管安装方法及技巧首先准备好需要的材料:热熔机,小剪刀,ppr管,管件,手巾。一定要根据自己热熔ppr管的口径,准备相应的热熔头。清洁:清洁管材与管件的焊接段部位,建议用95%浓度酒精擦净。在熔接时间内迅速的将管材无旋转的垂直插入管件中,并维持5秒以上,然后按相应冷却时间冷却。热熔后做到横平竖直,美观大方。

  • 大托特包搭配技巧(大托特包搭配技巧简述)

    西装外套+托特包复古时尚的格子,由黑白交错的条纹形成,文艺而又端庄搭配撞色托特包,优雅而不失俏皮,让气场变得灵动起来内搭白色连帽卫衣,减龄又可爱,接下来我们就来聊聊关于大托特包搭配技巧?大托特包搭配技巧西装外套+托特包复古时尚的格子,由黑白交错的条纹形成,文艺而又端庄。衬衫+托特包白色的衬衫休闲慵懒,给人一种空灵的感觉以及干净纯粹的气质。

  • 刘涛电视剧口碑(电视剧景气指数第一)

    还记得3月份刘涛在和周渝民主演的《大宋宫词》中扮嫩出演少妇被很多观众吐槽。万万没想到时隔数月,刘涛带着她的新剧《星辰大海》杀回来了。目前主要的剧情线在刘涛饰演的女主简爱身上。因为小时候意外发现母亲出轨的事,得知真相的父亲激愤之下杀死母亲并自杀,简爱因此成为了一个孤女。逃出傻子家的简爱在与姑姑的争执中误伤姑姑,从此开启逃命生涯。简爱从面馆辞职走投无路,误打误撞进入大公司之后面临着同事的故意刁难。

  • 外墙装修材料有哪些 外墙装修材料有哪些类型

    外墙涂料具有装饰性良好、耐污染耐老化以及施工维修容易和价格合理的特点。一般来说釉面外墙砖有亚光面与无光面两大类。它的装饰的效果也不错,有柚木色、深灰色等等可供选择。由于它的表面的肌理很清晰,所以色泽漂亮且装饰性极强。本站,中国知名大型装修平台,装修领导品牌。

  • 世界上有哪些花(世界上有哪些花 名字)

    瓜叶菊、香豌豆、夏兰、石竹、石蒜、荷花、翠菊、睡莲、福禄考、晚香玉、万寿菊、千日红、建兰、铃兰、报岁兰、香堇、大岩桐、水仙、小草兰、瓜叶菊、蒲包花、免子花、入腊红、三色堇、百日草、鸡冠花、一串红。孔雀草、大波斯菊、金盏菊、非洲凤仙花、菊花、非洲菊、观赏凤梨类、射干、非洲紫罗兰、天堂鸟、炮竹红、菊花、康乃馨、红掌、满天星、星辰花、三角梅、虞美人。

  • 长歌行李长歌母亲是谁杀的(长歌行李长歌的简介)

    下面更多详细答案一起来看看吧!长歌行李长歌母亲是谁杀的《长歌行》李长歌母亲是自杀的。李长歌,太子李建成之女,生母则是回纥王族。父母手足均死于玄武门之变,满怀愤恨的长歌凭高超武艺逃出皇宫,并在追捕过程中制造“坠崖假死”而逃生,其后女扮男装隐瞒身份流落民间,一心只想为父母复仇,在家和国的利害冲突中,最后放弃复仇,和阿诗勒隼一起成为了民族和解的使者。

  • 什么时候喝蛋白粉增肌效果最好(什么时候喝蛋白粉增肌效果最好)

    从长远来看,这种方法被证明可以促使肌肉明显增长。如果摄入量超过一定的阈值,蛋白质的合成就会受限。如果是以乳清饮料的形式摄入乳清蛋白,运动者可以在运动结束后立即饮用。按每公斤体重1克的标准,在健身前后立即摄入以及在运动后1小时内摄入可快速吸收的碳水化合物,可以明显抑制肌肉分解,并大大促进肌肉快速和明显的增长。在这种情况下,大量分泌的胰岛素促进了氨基酸向工作中的肌肉运输,为蛋白质合成奠定基础。

  • 窦骁周冬雨山楂树之恋结局(周冬雨18岁第一次出演)

    周冬雨18岁第一次出演要说最近最火的电影,非《少年的你》莫属,上映14天,已经收获了12.45亿的票房成绩,成为现阶段最强的票房黑马而作为该片主演的周冬雨和易烊千玺,也凭借在该片中的精彩演出,演技得到大众的进一步认可作为“。