假设我有两个并行开发的库版本:
- 1.0
- 2.0
我最终有3个分支:
- 1.0
- 2.0
- 掌握
我的分支错了吗?我应该在哪里提交 1.0 和 2.0 的新功能?现在,我在其各自的分支中提交每个功能。并且 1.0 的错误修正在 1.0 分支中提交,然后合并到 2.0 分支。
应该包含master
什么?
假设我有两个并行开发的库版本:
我最终有3个分支:
我的分支错了吗?我应该在哪里提交 1.0 和 2.0 的新功能?现在,我在其各自的分支中提交每个功能。并且 1.0 的错误修正在 1.0 分支中提交,然后合并到 2.0 分支。
应该包含master
什么?
鉴于所有答案都没有引用任何来源并且都自相矛盾,我决定遵循Doctrine 的工作流程(鉴于我也在开发一个 PHP 库并且 Doctrine 是一个“现代”/最近的项目)。
学说存储库包含以下主要分支:
- 学说/主开发到下一个版本。
- 教义/发布-*现有版本的维护分支。这些分支并行存在,定义如下:
教义/master 是 HEAD 源代码始终反映最新版本的分支。每个发布的稳定版本都将是一个在学说/release-* 分支中的标记提交。每个发布的不稳定版本都将是在学说/主分支中的一个标记提交。
简而言之,它与 SVN 工作流程非常相似:
我只是不知道如果我有一个与 1.0 和 2.0 并行开发的3.0版本(未来的实验版本)我会做什么。我想我将创建一个 3.0 分支并将 2.0 留在主服务器上(假设 2.0 是“下一个”版本)。
这里没有正确的方法或错误的方法。对于某些项目,将 master 视为“不稳定”分支可能很有用,因此您的大部分开发工作都集中在此处。(通常在他们自己的分支中处理新特性并将它们合并到主控是值得的)。现在,使用您的版本分支,您可以轻松地合并或挑选来自 master 的更改。根据项目的工作方式,您可能需要一个策略,说明版本分支应始终处于良好状态,并且任何提交都应增加版本号。
拥有一个不动的 master 分支非常方便,因为您可以设置一次该分支并期望 git pull 始终为您提供项目的最新代码。
master
在所有“出血边缘”代码所属的分支的约定名称中。如果您对代码的特定版本进行了分支,那没关系 - 提交对它们的修复,但在 master 中改进您的代码,然后使用您的版本名称从 master 创建分支。
git 主分支是由 git 默认创建的。它应该包括您的软件产品的最新稳定版本,或者换句话说,您希望用户默认下载的分支。您应该将实验性功能提交到 v1 和 v2 分支。