使用 Git 分支的主分支和多个功能分支

Working with a Git fork's master and multiple feature branches

我正在为 public Git 回购开发我的个人分支。我在我的 fork 中的不同分支上添加了多个功能(比如 fork/feature1fork/feature2),为此我有向上游仓库提交了单独的合并请求 (MR)。

现在,上游需要一段时间才能接受我的 MR(它只是偶尔维护),我现在需要在我的应用程序中使用所有这些功能。我的问题是:我如何安全地将这些更改应用到我的 fork 的 master 上(以便我可以将它用于我的应用程序),同时保留功能分支并且如果上游 MR 需要我仍然能够更新它们?

我的基本想法是这样的:只需将 fork/feature1fork/feature2 合并到 fork/master,但不要删除fork/feature1fork/feature2。 但是,如果上游 MR 中的讨论要求我更改 fork/feature1 上的某些内容以使其被接受怎么办?然后我需要再次将这些新更改应用到 fork/master。在这种情况下,即使 fork/masterfork/feature1 之前的几个提交,fork/feature1 的旧版本之前已经合并了吗?

我认为这里最好的策略是将每个独立的功能视为一个单独的 'mini-product',最终在审查和验收测试后交付(合并到上游)。反正从上游的角度来看是这样的;他们并不真正关心你的分叉主分支,对吧?

在这种情况下,您必须保持主分支和 'product' 功能的正确状态,就像您希望对两者应用修补程序一样 developmasterGitflow.

分支

是的,您实际上可以不使用单独的修补程序分支。相反,您可以先 'promote' fork/feature1,然后在 fork/master 中再次合并此分支。合并与分支无关,它们与提交及其层次结构有关。