合并彼此依赖的分支

时间:2019-05-24 14:16:23

标签: git merge branch git-merge

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

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

  • 任务1:添加表(需要合并)
  • 任务2:使用任务1中的表格,添加按钮以使用表单添加内容(需要合并)
  • 任务3:使用以前的解决方案,但是将一些东西添加到表中之后,您可以单击它以查看详细信息(需要合并)

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

并且您知道,代码审查需要很多时间,所以我不想坐下来等待,但是我想在任务1审查时继续执行任务2,然后在任务2审查时继续执行任务3正在审核。

有一种方法可以做到吗?我使用带有Gitlens扩展名的VS Code,也使用终端进行推送。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

安装分支中的另一个分支?那将是标准方法,唯一要记住的是,当您“更新”时,您必须更加小心。例如,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开发的一部分(例如,两个独立的开发),那么您就必须将task2仅 重新设置为task1的新位置。因此,您必须这样做:

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

通过这种方式,您要求git将task1的 new 位置重新建立基础,分支task2丢弃所有旧版本的旧版本,这些旧版本属于old-task1-position的历史。

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