如何使用具有功能分支之间依赖关系的 Gitflow?

How to use Gitflow with dependencies between feature branches?

我正在使用 GitFlow,并将功能分支映射到用户故事。本质上,每个功能分支代表一个用户故事。当故事完全实现和测试时,就被认为完成了,特性也完成了(合并回开发分支)。

我现在的问题是我的功能已拆分为 Epic,目的是制定渐进式部署计划。每个故事都应该是一个特色。绝大多数故事的设计使得它们实际上彼此没有任何依赖性,能够单独实现它们。但是,需要注意的是,它们都依赖于一个共同的故事。

目前common story(feature)已经完成,但是还没有通过testing/QA部门,所以还不能合并回develop分支。但我想开始创作史诗中的另一个故事。

此时的"correct"流程是什么?我应该只从现有功能分支的 HEAD 创建一个功能分支吗?它不遵循典型的 GitFlow 流程,所以我想知道其他人是如何解决这种情况的。

是的,您应该从现有功能分支的顶端创建一个功能分支。 Git 与大多数流程一样,Flow 更像是一套指南,而不是实际规则。

但是,如果您想要更清晰的历史记录,也可以这样做。一旦依赖的功能分支被合并到 develop,然后检查你的新功能分支并执行:

git rebase develop

在 rebase 期间,Git 将看到依赖分支的提交已经合并到 develop,因此功能分支中不再需要它们。因此,您的功能分支现在将只包含特定于该功能的新提交。

如果你已经将它推送到服务器,你还需要做:

git push --force-with-lease

现在您的功能分支就像在合并依赖功能后直接离开 develop