首页 > 解决方案 > 相互依赖合并分支

问题描述

很抱歉这个问题被问了很多次,但我就是找不到解决我的问题的方法。

我有很多任务,其中一些依赖于其他任务,所以可以说,我们有:

如您所见,任务 1 需要合并到 master 中,任务 2 依赖于任务 1,因此您必须包含它,还需要合并,任务 3 需要任务 1 和任务 2。

如你所知,代码审查需要很多时间,所以我不想只是坐等,但我想在任务 1 审查时继续任务 2,然后在任务 2 审查时继续任务 3。

有没有办法做到这一点?我使用带有 Gitlens 扩展的 VS Code,也使用终端推送。

谢谢你的时间。

标签: gitmergebranchgit-merge

解决方案


在另一个顶部安装分支?这将是标准方式,唯一要记住的是,当您“更新”时,您必须更加小心。例如,task2 分支从 task1 分支开始,而 task1 仍在开发中。一段时间后,task1 收到了几个提交。为了让 task2 得到它们:

git checkout task2
git rebase task1

这应该足以将 task2 移动到 task1 的新位置之上......但是当 task1 “移动”时事情变得更加棘手(例如,task1 被重新定位)。在这种情况下,您不能只是“变基”,因为如果您尝试这样做,git 会尝试将 task1 的“先前”修订版变基到 track1 的新位置之上。假设如果 task1 保持不变,那么您会从 git 收到一些消息说补丁已应用并且您可以告诉 git 跳过它们可能非常简单......但要记住的真实事情就是说,实际上,新的 task1 分支可能与您开始工作的旧 task1非常不同......并且鉴于 task1 不是 task2 开发的一部分(例如,两个独立的开发),到task1的新位置。所以,你必须这样做:

git rebase --onto task1 old-task1-position task2

这样,您要求 git 重新定位到任务 1 的位置,分支任务 2 丢弃所有以前的修订,这些修订是旧任务 1 位置历史的一部分。

以这种方式工作并不难,只需要练习并知道发生了什么


推荐阅读