如何设置多顺序故事的分支策略(Git Flow)?

How to set up the branching strategy for multiple-sequential stories (Git Flow)?

我们正在从 TFS 迁移到 Git (Azure DevOps),我不清楚以下场景的最佳策略:

我们在 Sprint 中有两个故事。

  1. PBI-1:添加功能 XYZ
  2. PBI-2:扩展功能 XYZ

注:

另请注意:

好吧,据我所读,在我看来,每个 PBI 都应该独立 "Feature Branch"(从 "develop" 分支创建)。既然如此,那我猜:

在 Sprint 开始时,我们将在 'develop' 的基础上创建一个名为 "Feature/Add-XYZ" 的新功能分支。

然后多个开发人员将开始研究这个,按照通常的日常流程进行重新设置(注意:请参阅下面关于为什么不使用重新设置的评论)来自'develop',定期提交并推送到分支的服务器版本 "Feature/Add-XYZ"(在 DevOps 上)。

当 PBI-1 上的所有工作完成并将所有代码推送到服务器后,将创建一个合并请求并发送给审批人。

但是,Approver 很忙,可能几天都赶不上 Pull Request;我们不希望这成为一个障碍,所以团队应该如何开始下一个 PBI,牢记:

我猜我会:

  1. 从 "master" 创建一个名为 "Feature/Extend-XYZ" 的新分支(这将不包含任何与 XYZ 相关的代码,因为它仍在分支 "Feature/Add-XYZ" 中)
  2. 然后我需要 "copy" 从分支 "Feature/Add-XYZ" 到 "Feature/Extend-XYZ" 的相关代码。

如果这是正确的方法,那么实现步骤 2 的推荐方法是什么?是不是很简单"Merge From"?

My guess is that I'd:

  1. Create a new branch off of "master" called "Feature/Extend-XYZ" (this won't contain any code related to XYZ as that is still in the branch "Feature/Add-XYZ")
  2. I would then need to "copy" the relevant code from the branch "Feature/Add-XYZ" to "Feature/Extend-XYZ".

不,您永远不会想要将代码从一个分支复制到另一个分支。一旦您准备好开始处理第二个功能,您只需从第一个分支中分支出第二个分支。如果随着时间的推移,对第一个分支进行了任何新添加,您将将该分支合并到第二个分支中。

回到为什么...

  • PBI-2 is dependant on code sitting in the branch "Feature/Add-XYZ"
  • The branch "Feature/Add-XYZ" will be deleted as soon as the Approval Process is complete

删除无所谓。删除一个分支不会影响从它分支出来的分支。

最后一点:

with the usual flow of daily re-basing

你不应该对一个有多个人积极工作的分支进行变基。如果一个人这样做,分支的历史将为其他人打破。相反,将 develop 合并到您的功能分支中。