• 【版本控制系统】Git学习


    1、Git的历史

                同生活中的伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。

    到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标:

    •速度

    •简单的设计

    •对非线性开发模式的强力支持(允许上千个并行开发的分支)

    •完全分布式

    •有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

    下载地址:

    https://www.kernel.org/pub/software/scm/git/

    2、Git与SVN对比

       2.1、Svn原理分析

               svn属于集中式版本管理控制系统,系统中保存了所有文件的修改版本,而协同工作人员通过连接svn服务器,提取出最新的文件,获取提交更新。

             集中管理方式在一定程度上看到其他开发人员干了什么,而管理员可以掌握每个人的权限。但是相较于其优点而言。

           1、服务器单点故障

           2、容错性差

       2.2、Git原理分析
              Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。这类系统(CVS,Subversion,Perforce,Bazaar等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。

     

     

     


     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Java基础—ArrayList源码浅析
    Java基础——类加载机制
    Java基础——常用类之日期时间类
    Java基础——反射
    栈队列例题3:使用两个栈实现一个队列
    栈队列例题2:SetOfStack放盘子
    栈队列例题1:设置带最小值的栈
    链表例题6:检查链表中的数据是否回文
    队列的实现
    栈的实现
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860920.html
Copyright © 2020-2023  润新知