假设我的服务器中的最后一次提交是这样的:
A1 -> A2 -> A3
我的本地仓库与服务器同步,现在我从 A3 分支:
A3
|
B1 -> B2 -> B3
最后我完成了提交 B3 中的任务,我想推送到服务器并合并(PR)。但是在服务器中,其他人添加了新的提交:
A1 -> A2 -> A3 -> A4 -> A5
回顾 A4 和 A5,我发现与我在 B3 上的工作没有冲突,所以我想合并我的工作,就好像我直接从 A5 分支一样。这看起来是一个非常常见的任务,正确的方法是什么?
我不知道你如何处理你的拉取请求。如果 A1-A5 和 B1-B3 都被推送到每个分支上的远程,您所要做的就是跳到分支 A 或 B 然后
git pull remote origin BRANCH A/B
命名。由于您在 B 上工作,因此只需git pull remote origin BRANCH A
在分支 B 上执行。这将在同一分支上为您提供 A1-A5 和 B1-B3。然后使用分支 B 创建一个 PR 到 master。或者(我认为正确的方法)是让 A 掌握 PR,让 B 掌握 PR。已经在 B 中的 A 的重叠不应该引起任何问题。
如果 A 和 B 根本不相关,您应该将 B 从您的开发分支或等效分支中分支出来。
这是用于更复杂工作流的非线性分支策略的示例。
看到这种线性与非线性的工作流程可能有助于更好地可视化正在发生的混乱。
如果我对您的情况的解释和理解不正确,请告诉我,以便我可以更改或完全删除答案。