zoukankan      html  css  js  c++  java
  • Git学习之路(1)-Git简介

     

    ▓▓▓▓▓▓ 大致介绍

      Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,可以有效、高速的处理从很小到非常大的项目版本管理。 

      Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件

    ▓▓▓▓▓▓ Git的诞生

      Git是由Linus编写的,这个名字应该不会陌生,著名的Linux就是Linus的杰作!(厉害的人干啥都厉害),虽然Linus创建了Linux,但是Linux的壮大是由全世界热心的参与者共同努力的结果,而在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!

      可想而知Linus的心有多累,但在2002年Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统

      但是由于某种原因BitMover公司在2005年收回了Linux社区的免费使用权。然后Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!(厉害的人干啥都厉害)

      Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

    ▓▓▓▓▓▓ 版本控制

        ◆ 本地版本控制系统

        ◆ 集中化的版本控制

        ◆ 分布式的版本控制

        

        ▓▓▓▓▓▓ 本地版本控制系统

          大多的本地版本控制系统都是采用某种简单的数据库来记录文件的历次更新差异

                            

         

        ▓▓▓▓▓▓ 集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS )

          集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

                           

          集中式版本控制系统有几个明显的缺点:

            1、如果遇到中央服务器故障,那么谁都无法进行提交,也就无法进行协同工作

            2、必须联网进行操作

      ▓▓▓▓▓▓ 分布式的版本控制系统( Distributed Version Control System,简称 DVCS )

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

                                 

        分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了

    参考资料:

          廖雪峰的官方网站-Git教程

          CODE帮助文档-Progit中文版

  • 相关阅读:
    一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少
    Spring之創建Bean的三種方式
    mybatis單元測試成功,但是起服務測試失敗的原因:mybatis.xml配置錯了!
    HTML5 because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME c
    如何使用mybatis?(包括存储过程,函数,事务)
    IDEA 目录和package创建时的命名区别
    G.Greater and Greater
    C++ bitset容器用法简单介绍
    C.Cover the Tree
    阶乘位数
  • 原文地址:https://www.cnblogs.com/amoyzhu/p/6410604.html
Copyright © 2011-2022 走看看