美文网首页Git系列篇
版本控制的演变

版本控制的演变

作者: 拙峰朽木 | 来源:发表于2017-06-12 16:41 被阅读16次

    1.本地版本控制:

    许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。
    其中最流行的一种叫做 RCS,它的工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。

    image.png

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

    不同系统上的开发者协同工作?
    有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。 多年以来,这已成为版本控制系统的标准做法。
    诸如 CVS、Subversion 以及 Perforce 等

    弊:要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。

    image.png

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

    客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。
    何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

    像 Git、Mercurial、Bazaar 以及 Darcs 等

    image.png

    更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。 你可以根据需要设定不同的协作流程,比如层次模型式的工作流,而这在以前的集中式系统中是无法实现的。

    很难理解svn和Git的区别,或者说优势。
    svn commit是需要联网的,svn中央服务器代码一旦丢失就很难恢复。

    分布式理论上是不需要中央服务器的,A和B是可以直接相互推送的,但是真实开发中A和B的电脑要相互访问是很麻烦的。所以出现了github和OSGit。

    相关文章

      网友评论

        本文标题:版本控制的演变

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