我目前正在深入研究git-flow,并尝试弄清如何在我参与的项目中使用它。
我已经查看了各种git-flow教程,并且对git非常熟悉。因此,我不需要关于git本身的任何提示,而是需要直接了解使用git-flow的工作流程。
这里是情况:
当我发布一个版本(称为1.0)时,它会从develop分支中分支出来,这很好。现在假设我开始在2.0上工作,添加新功能。当然,一旦完成,我希望将它们合并回develop。现在在1.0上进行热修补也没问题,所以让我们也说我会生成几个版本1.0.1、1.0.2等。所有这些都将更新develop分支,这也很好。到目前为止没有什么麻烦,我可以独立地为2.0开发功能和1.0.x进行热修复。
但是,假设有人要求在1.1发布中添加新功能。现在我有一个问题。如果我创建一个特性分支,这将基于develop分支,而develop可能已经包含2.0的内容,而我可能不希望在此1.1发布中包含这些内容。
有没有简单的方法来单独处理这些2.0和1.1变更?
我已经看到了几种可能性:
在develop上的最后一个发布位置创建一个新分支。将develop变基到此位置并重命名其他develop分支。但是,那么该分支将不包含任何来自1.0.1等的热修复。
在2.0完成之前,不要合并回2.0的功能。然而,这样就必须把大量未合并的更改保留到最后一刻。此外,如果先发布2.0,然后请求对1.0.x进行更改,则无法解决问题。
使用git flow是否可能实现这一点?即,在新版本的工作已经开始或甚至已经完成后,基于较早版本进行发布?