zoukankan      html  css  js  c++  java
  • git的基本原理

    git 是一个版本控制工具,可能自己一个人开发的时候觉得这个不重要,开发到一个阶段后自己保存自己的文件,然后重新命名下,当自己的开发时出现了很大的问题时,可能就会选择自己上一个版本进行重新开发,这就是我在未接触git时来管理自己的代码的。

    那么git呢,如何来帮我们管理自己的代码呢?

    首先了解git是一个版本控制系统,版本控制系统分为三大类:本地版本控制系统,集中式版本控制系统和分布式版本控制系统。

    本地版本控制(Local Version Control Systems)是将文件的各个版本以一定的数据格式存储在本地的磁盘(有的VCS 是保存文件的变化补丁,即在文件内容变化时计算出差量保存起来),这种方式在一定程度上解决了手动复制粘贴的问题,但无法解决多人协作的问题。这就像是我开头说的例子一样,通过文件来进行保存,一个文件对应一个版本,但是用稀有的好处是帮我们自动化了。

                

    集中式版本控制(Centralized Version Control Systems)相比本地版本控制没有什么本质的变化,只是多了个一个中央服务器,各个版本的数据库存储在中央服务器,管理员可以控制开发人员的权限,而开发人员也可以从中央服务器拉取数据。集中式版本控制虽然解决了团队协作问题,但缺点也很明显:所有数据存储在中央服务器,服务器一旦宕机或者磁盘损坏,会造成不可估量的损失。简单点说,就是将自己的本地版本放到了服务器上。

                

            分布式版本控制( Distributed Version Control System)与前两者均不同。首先,在分布式版本控制系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,系统保存的的不是文件变化的差量,而是文件的快照,即把文件的整体复制下来保存,而不关心具体的变化内容。其次,最重要的是分布式版本控制系统是分布式的,当你从中央服务器拷贝下来代码时,你拷贝的是一个完整的版本库,包括历史纪录,提交记录等,这样即使某一台机器宕机也能找到文件的完整备份。

    参考博文:https://blog.csdn.net/dianxin113/article/details/96491994

  • 相关阅读:
    职业发展拷问——非科班出身如何才能成为一名合格程序员
    记一个神奇的Bug
    Python多维数组切片
    如何查看数组指针指向数组的所有元素
    RoboMongo命令(版本:Robo 3T 1.1.1)
    Git命令(Git版本:Linux 2.14.3)
    逐点收敛与一致收敛
    廖雪峰Python教程疑问
    The Non-Inverting Amplifier Output Resistance by Adrian S. Nastase [转载]
    2.4G无线射频通信模块nRF24L01+开发笔记(基于MSP430RF6989与STM32f0308)(1.(2)有错误,详见更正)
  • 原文地址:https://www.cnblogs.com/minblog/p/13449781.html
Copyright © 2011-2022 走看看