且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Storm实时数据处理》一1.3 分布式版本控制

更新时间:2022-08-14 08:18:19

本节书摘来华章计算机《Storm实时数据处理》一书中的第1章 ,第1.3节,(澳)Quinton Anderson 著 卢誉声 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.3 分布式版本控制

传统版本控制系统都是集中式的。每个客户端都包含一份从当前版本签出的文件,而当前版本则取决于客户端使用的分支。所有历史版本都会存储在服务器上。这样的做法效果不错,不仅能让团队紧密协作,还能知道其他成员在做什么工作。
但集中式服务器存在一些较为明显的缺点,这让分布式版本控制系统的应用范围越来越广。首先,集中式服务器存在单点故障问题,如果服务器由于某种原因死机或无法访问,开发人员会因此难以继续工作。其次,如果服务器上的数据由于某种原因损坏或丢失,代码库的历史记录也就随之丢失。
基于以上两个原因,开源项目极大地推动了分布式版本控制的发展,但究其主要原因,还是分布式系统能帮助我们实现协作模型。开发人员可以在本地环境下用自己的方式进行工作,然后在方便的时候,一次性或多次将这些改动分布到一个或多个远程代码仓库。
除此之外,还有一个很明显的优势就是,由于每一个客户端都拥有代码仓库的完整镜像,因此会自然存在多个仓库备份。所以,如果任何一个客户端或服务器出现问题,都可以轻松恢复,实现数据还原。
实战
本书使用Git作为分布式版本控制系统。如果要建立一个代码仓库,你可以克隆已存在的代码仓库,或者通过初始化创建一个新的代码仓库。对于新创建的项目来说,应该通过初始化创建一个新的代码仓库。
Step01 通过以下命令创建项目目录:
《Storm实时数据处理》一1.3 分布式版本控制

Step02 为了确认我们之前的步骤是否有效,需要在代码仓库中添加一些文件:
《Storm实时数据处理》一1.3 分布式版本控制

使用vim或任何其他文本编辑器,简单增加一些描述性文字并按下插入键。完成后按下Esc键,输入“:wq”,并按下回车键保存。
Step03 在提交之前,我们来看看代码仓库的状态:
《Storm实时数据处理》一1.3 分布式版本控制

该命令会显示出类似于以下内容的信息:
《Storm实时数据处理》一1.3 分布式版本控制

Step04 你需要使用以下命令,手动添加所有的文件和目录到Git代码仓库中:
《Storm实时数据处理》一1.3 分布式版本控制

Step05 然后提交:
《Storm实时数据处理》一1.3 分布式版本控制

Step06 这时会打开vim编辑器并让你添加注释。
你可以在输入命令的同时,使用-m参数指定要提交的描述信息。
如果不把代码仓库存储在远程主机上,你将遇到和集中式存储一样的风险问题。所以你应该把代码仓库存储在远程主机上。www.github.com和www.bitbucket.org是两个不错的免费Git托管服务,这两个服务都可以通过加密保证你的知识产权不被公共用户访问。本书使用bitbucket.org作为示例。要使用该远程托管服务,只需在你的浏览器***问该站点并注册一个账户。
注册成功后,点击菜单创建一个新的代码仓库,如图1-1所示。

《Storm实时数据处理》一1.3 分布式版本控制

填写图1-2所示内容来创建代码仓库:

《Storm实时数据处理》一1.3 分布式版本控制

代码仓库创建完成后,你需要将远程代码仓库添加到你的本地代码仓库中,然后向远程代码仓库提交修改。
《Storm实时数据处理》一1.3 分布式版本控制

你需要使用刚才注册的用户名替换上面命令行中的[user]。
稍后我们会介绍克隆代码仓库的方法以及如何通过版本控制进行工作。