版本控制系统

2020-11-13  本文已影响0人  _1633_

    学习 Git 之前 我们需要理解  Git 是一个分布式版本控制系统 这句话,什么是 版本控制系统,什么又是 分布式版本控制系统。


版本控制

    版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

                                                                                                                                                                                                                        ———— 百度百科

 版本控制系统的核心:版本控制、主动提交、中央仓库

   版本控制

        简单来说,版本控制就是保存文件的历史修改记录, 使我们能够方便的撤销之前对文件的修改操作,或者能够很方便的退回到历史的某个阶段。

    比如 我们使用的各种 文本编辑器都有撤销的功能,就像简书或者各种 IDE,使用 Ctrl + Z 就能撤销刚才的操作,退回到上一个文档的状态。这是因为文本编辑器自动帮你保存了之前的内容,当撤销的时候,它会把内容退回到上一个状态。

    主动提交 

        版本控制系统(Version Control System - VCS) 和 普通的文本编辑器的 撤销功能相比,程序的开发周期非常的长,我们甚至会查看几年前的代码修改情况,如果依然采用 每次修改自动保存的形式保存历史记录,那么这个记录很非常频繁,并且冗余记录非常多,这样查找想要的历史记录就非常困难。所以 VCS 采用了 主动提交改动 的机制,这样每当我们想把 当前版本作为一个历史记录,就主动 commit 提交,把该版本存储到历史版本中,当我们需要回退的时候,就能从 VCS 历史日志中找到它。

    中央仓库

        当多人共同进行开发的时候,就需要有一个中央仓库作为代码的存储中心: 开发者将代码上传到中央仓库,其他所有的人也能看到或者下载别人上传的代码。


中央式版本控制系统 和  分布式版本控制系统

    最初的版本控制系统 是 中央式版本控制系统(Centralized VCS),Git 是 分布式的 版本控制系统(Distributed VCS)。

    中央式版本控制系统

中央式

           中央式版本控制系统是将 版本库是集中存放在中央服务器。

           多人开发的时候,首先从中央仓库下载到初始的代码,然后多人并行开发;

           开发过程中每个人都负责一部分功能,完成后将新代码提交到中央仓库;

           当有人提交代码的时候,其他人就可以将这些新代码同步到自己的机器上,保持自己本地的代码式最新的。

           这是中央式 VCS 最基本的工作流程,其实开发过程中并没有这么简单,会出现代码冲突,历史版本回退等问题。

        分布式版本控制系统

分布式

            分布式 和 中央式 的 区别在于,分布式 VCS 除了中央仓库之外,本地还有一个自己的仓库:开发者的电脑上都有自己的本地仓库,这个仓库包含了所有的历史版本,也就是说,每个人在自己的电脑上就可以提交代码,查看历史,不需要和 中央仓库交互,只需要和本地仓库交互

            中央式 VCS 的中央仓库主要是 保存版本历史 和 同步团队代码;分布式 VCS 将 保存版本历史的工作 放到了 开发者自己的 本地仓库中,中央仓库的主要任务变成了同步团队代码,当然它依然能保存历史版本。

            多人开发时,主程序员将 项目代码提交到本地仓库

            然后再服务器上创建一个中央仓库,并 将本地的代码推送到服务器的中央仓库

            其他开发者把中央仓库的所有内容克隆到本地,拥有了自己的本地仓库,并行开发;

            开发者再开发过程中,将自己每次的开发功能完成 提交到本地仓库,开发完成后 将所有代码 从本地仓库 推送到中央仓库

            其他开发者 可以把新的提交同步到自己的电脑上,把它们和自己本地的代码合并

        优点

            大多数操作再本地,无需网络就可以提交代码,查看历史版本,速度快;

            在本地提交代码可以将每次提交细分,不用一次提交所有代码,这样出现问题的时候,可以方便我们退回一小步,有更多的历史版本。

        缺点

              因为有个本地仓库,每次记录了历史版本,所以比中央式 更占 存储空间。

上一篇 下一篇

猜你喜欢

热点阅读