分布式Git
分布式工作流程
同传统的集中式版本控制系统(CVCS)不同,开发者之间的协作方式因着Git 的分布式
特性而变得更为灵活多样。在集中式系统上,每个开发者就像是连接在集线器上的节点,彼
此的工作方式大体相像。而在Git 网络中,每个开发者同时扮演着节点和集线器的角色,
这就是说,每一个开发者都可以将自己的代码贡献到另外一个开发者的仓库中,或者建立自
己的公共仓库,让其他开发者基于自己的工作开始,为自己的仓库贡献代码。于是,Git 的
分布式协作便可以衍生出种种不同的工作流程
集中式工作流
集中式工作流程使用的都是单点协作模型。一个存放代码仓库的中心服务器,可以接受所有开发者提交的代码。所有的开发者都是普通的节点,作为中心集线器的消费者,平时的工作就是和中心仓库同步数据
如果两个开发者从中心仓库克隆代码下来,同时作了一些修订,那么只有第一个开发者可
以顺利地把数据推送到共享服务器。第二个开发者在提交他的修订之前,必须先下载合并
服务器上的数据,解决冲突之后才能推送数据到共享服务器上。在Git 中这么用也决无问
题,这就好比是在用Subversion(或其他CVCS)一样,可以很好地工作。
集成管理员工作流
由于Git 允许使用多个远程仓库,开发者便可以建立自己的公共仓库,往里面写数据并
共享给他人,而同时又可以从别人的仓库中提取他们的更新过来。这种情形通常都会有个代
表着官方发布的项目仓库(blessed repository),开发者们由此仓库克隆出一个自己的公
共仓库(developer public),然后将自己的提交推送上去,请求官方仓库的维护者拉取更
新合并到主项目。维护者在自己的本地也有个克隆仓库(integration manager),他可以
将你的公共仓库作为远程仓库添加进来,经过测试无误后合并到主干分支,然后再推送到官
方仓库。
1. 项目维护者可以推送数据到公共仓库blessed repository。
2. 贡献者克隆此仓库,修订或编写新代码。
3. 贡献者推送数据到自己的公共仓库developer public。
4. 贡献者给维护者发送邮件,请求拉取自己的最新修订。
5. 维护者在自己本地的integration manger 仓库中,将贡献者的仓库加为远程仓库,
合并更新并做测试。
6. 维护者将合并后的更新推送到主仓库blessed repository。
司令官与副官工作流
各个集成管理员分别负责集成项目中的特定部分,所以称为副官(lieutenant)。而所有这些集成管理员头上还有一位负责统筹的总集成管理员,称为司令官(dictator)。司令官维护的仓库用于提供所有协作者拉取最新集成的项目代码。整个流程:
1. 一般的开发者在自己的特性分支上工作,并不定期地根据主干分支(dectator 上的
master)衍合。
2. 副官(lieutenant)将普通开发者的特性分支合并到自己的master 分支中。
3. 司令官(dictator)将所有副官的master 分支并入自己的master 分支。
4. 司令官(dictator)将集成后的master 分支推送到共享仓库blessed repository
中,以便所有其他开发者以此为基础进行衍合。
提交指南
首先,请不要在更新中提交多余的白字符(whitespace)。Git 有种检查此类问题的方
法,在提交之前,先运行git diff --check,会把可能的多余白字符修正列出来。
接下来,请将每次提交限定于完成一次逻辑功能。并且可能的话,适当地分解为多次小更
新,以便每次小型提交都更易于理解。
最后需要谨记的是提交说明的撰写。
相关推荐
然而,随着项目的扩展和团队的增长,单一的Git服务器可能会成为瓶颈,这时就需要采用多中心分布式Git架构来优化管理。 在多中心分布式架构中,多个Git服务器可以并存,每个服务器都可以作为中心节点,开发者可以...
将 Git 的知识结构化并展示得清晰易懂。在 XMind 中,包括 Git 的基本概念,比如版本控制、提交、分支、合并等。通过添加分支,可以深入探讨每个概念,并连接相关的详细内容。使用不同的颜色、图标和样式可以对不同...
这是制作分布式git服务器集群的实验项目。 该项目的主要目标是找到一种合理的方法来向git存储库添加可伸缩性和冗余。 基本思想是在多个节点上定位git存储库,并将git客户端的代理请求发送到适当的节点。 这种方法...
通过本教程,读者将了解 Git 的使用方法、版本控制的重要性、Git 的历史背景、Git 的基础知识、Git 的分支管理、服务器上的 Git、分布式 Git 等内容。 一、起步 版本控制是记录文件内容变化的系统,以便将来查阅...
你现在可以学习如何利用Git提供的一些分布式工作流程了。这一章中,你将会学习如何作为贡献者或整合者,在一个分布式协作的环境中使用Git。你会学习为一个项目成功地贡献代码,并接触一些最佳实践方式,让你和项目的...
当下开源社区非常流行的版本管理系统Git的详细系列...Git详解之五 分布式Git.doc Git详解之六 Git工具.doc Git详解之七 自定义Git.doc Git详解之八 Git与其他系统.doc 附录 图解 Git.doc Git详解之九__Git内部原理.doc
Git是当今世界上最流行的分布式版本控制系统,它由林纳斯·托瓦兹(Linus Torvalds)为Linux内核开发而创建。Git的核心理念是提供一个高效、灵活的工具,使得软件开发人员能够协同工作,追踪代码的历史变化,以及...
1 起步 1 1 关于版本控制 1 2 Git 简史 1 3 Git 基础 1 4 安装 Git 1 5 初次运行 Git 前的配置 ...2 Git 基础 ...2 1 取得项目的 Git 仓库...5 分布式 Git 6 Git 工具 7 自定义 Git 8 Git 与其他系统 9 Git 内部原理
git-dissect:分布式biSECT git-dissect是git bisect的替代方法,它允许在多个主机上运行测试以更快地进行bisect。 它是受罗伯·霍尔茨(Rob Hoelz)的。安装 $ git clone ...
本文来自git-scm.com,除了如何有效地参与一个项目的贡献之外,你可能也需要了解如何维护项目。请参阅下文。文章的第一篇文章的第二篇除了如何有效地参与一个项目的贡献之外,你可能也需要了解如何维护项目。这包含...
git-scm.com官方开放免费版权的电子书progit,有pdf和epub版本,主要讲解Git怎么使用: 1. 起步 1.1 关于版本控制 1.2 Git 简史 ...5. 分布式 Git 5.1 分布式工作流程 5.2 向一个项目贡献 5.3 维护项目 5.4
Git 属于分布式版本控制系统,而 SVN 属于集中式。 集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。 集中式版本控制有安全性问题,当中心服务器挂了所有人都没办法...
因为Git非常灵活,人们可以通过不同的方式来一起工作,所以描述应该如何贡献并不是非常准确-每一个项目都有一点儿不同。影响因素包括活跃贡献者的数量、选择的工作流程、提交权限与可能包含的外部贡献方法。第一个...
“分布式Git”章节讲述如何在分布式环境中贡献和维护项目。分布式工作流允许开发者各自在本地进行开发和提交,之后再将更改推送至中央仓库,这在开源社区中非常流行。 “GitHub”章节则专注于GitHub这个基于Git的...
5. **分布式Git**: Git的分布式特性意味着每个克隆的仓库都是完整的一份,包含所有历史记录。这使得离线工作、本地备份和并行开发变得简单。`git fetch`和`git pull`用于从其他副本获取更新,`git push`则将本地...
本文将详细阐述Git的学习资料,包括起步,基础操作,分支管理,服务器上的Git,分布式Git的工作流程以及相关的工具使用。 首先,Git的基础概念需要掌握。版本控制系统分为三种类型:本地版本控制系统,集中化的版本...
最后,分布式Git章节讲解了分布式工作流程,包括集中式工作流、集成管理员工作流和司令官与副官工作流。此外,还介绍了如何为项目作贡献,包括提交指南和针对不同规模与性质的团队的贡献方式。项目管理部分则涉及...