如何处理 git 流程中未合并功能的未来工作?

How to handle future work over unmerged features in git flow?

我正在使用 git 流程 - 创建功能分支,并将它们合并到开发中,...你知道的。

我制作了两个功能并提出了在 GitHub 上开发分支的拉取请求。将它们称为功能 A 和 B。

现在我想开始处理最新的提交 - 同时使用 A 和 B。但是,我的代码没有合并到 GitHub 因为我的审阅者还没有审阅它。

遇到这种情况,我该如何处理?

这就是我所说的“期待分支”。

从A创建一个分支C。现在C有A的内容。将B合并到C。现在C有A和B的内容。

git checkout -b C A
git merge B

将合并提交标记为 C 开始的位置。这个以后会有用。

git tag C-start

在 C 上做一些工作

当A和B合并为master时,pull master。现在 master 拥有 A 和 B 的内容。根据 PR 和合并过程的进展情况,该内容可能与您合并到 C 中的内容不同。如果我们现在推送 C,我们将恢复旧的 A 和 B 提交。

为了避免这种情况,我们只将 C 提交重写到 master 上。这是 C-start 标签有用的地方。我们可以使用它来仅获取写入 C 分支的提交。

# Recommit from C-start to C onto master
git rebase --onto master C-start C
# Delete the C-start tag, we don't need it.
git tag -d C-start

现在只有 C 上的提交已在 master 之上重写。这确保 C 具有合并到 master 中的 A 和 B 的更新内容。

现在提交 C 作为 PR。