0

假设我有两个并行开发的库版本:

  • 1.0
  • 2.0

我最终有3个分支:

  • 1.0
  • 2.0
  • 掌握

我的分支错了吗?我应该在哪里提交 1.0 和 2.0 的新功能?现在,我在其各自的分支中提交每个功能。并且 1.0 的错误修正在 1.0 分支中提交,然后合并到 2.0 分支。

应该包含master什么?

4

4 回答 4

4

鉴于所有答案都没有引用任何来源并且都自相矛盾,我决定遵循Doctrine 的工作流程(鉴于我也在开发一个 PHP 库并且 Doctrine 是一个“现代”/最近的项目)。

学说存储库包含以下主要分支:

  • 学说/主开发到下一个版本。
  • 教义/发布-*现有版本的维护分支。这些分支并行存在,定义如下:

教义/master 是 HEAD 源代码始终反映最新版本的分支。每个发布的稳定版本都将是一个在学说/release-* 分支中的标记提交。每个发布的不稳定版本都将是在学说/主分支中的一个标记提交。

简而言之,它与 SVN 工作流程非常相似:

  • master将包含当前开发的版本,对我来说是 2.0。师父不稳!
  • 1.0将包含稳定版本,一旦版本稳定发布,就会从 master 分支。

我只是不知道如果我有一个与 1.0 和 2.0 并行开发的3.0版本(未来的实验版本)我会做什么。我想我将创建一个 3.0 分支并将 2.0 留在主服务器上(假设 2.0 是“下一个”版本)。

于 2012-09-30T10:13:49.217 回答
2

这里没有正确的方法或错误的方法。对于某些项目,将 master 视为“不稳定”分支可能很有用,因此您的大部分开发工作都集中在此处。(通常在他们自己的分支中处理新特性并将它们合并到主控是值得的)。现在,使用您的版本分支,您可以轻松地合并或挑选来自 master 的更改。根据项目的工作方式,您可能需要一个策略,说明版本分支应始终处于良好状态,并且任何提交都应增加版本号。

拥有一个不动的 master 分支非常方便,因为您可以设置一次该分支并期望 git pull 始终为您提供项目的最新代码。

于 2012-09-29T19:14:26.957 回答
1

master在所有“出血边缘”代码所属的分支的约定名称中。如果您对代码的特定版本进行了分支,那没关系 - 提交对它们的修复,但在 master 中改进您的代码,然后使用您的版本名称从 master 创建分支。

于 2012-09-29T19:15:16.787 回答
-1

git 主分支是由 git 默认创建的。它应该包括您的软件产品的最新稳定版本,或者换句话说,您希望用户默认下载的分支。您应该将实验性功能提交到 v1 和 v2 分支。

于 2012-09-29T19:15:53.280 回答