假设我的服务器中的最后一次提交是这样的:
A1 -> A2 -> A3
我的本地仓库已与服务器同步,现在我从 A3 分支:
A3
|
B1 -> B2 -> B3
终于,我完成了提交 B3 中的任务,我想推送到服务器并合并(PR)。但在服务器上,其他人添加了新的提交:
A1 -> A2 -> A3 -> A4 -> A5
回顾 A4 和 A5,我发现它们与 B3 上的工作没有冲突,所以我想合并我的工作,就像我直接从 A5 分支一样。这看起来是一项非常常见的任务,正确的做法是什么?
答案1
我不知道你是如何进行拉取请求的。如果 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 以供掌握。A 中已在 B 中的重叠部分不应导致任何问题。
如果 A 和 B 根本不相关,您应该将 B 从您的开发或等效分支中分支出来。
以下是一个示例非线性分支策略适用于更复杂的工作流程。
看到这个线性与非线性工作流程可能有助于更好地形象化正在发生的混乱局面。
如果我对您的场景的解释和理解不正确,请告诉我,以便我可以更改或完全删除答案。