Git 当我需要其他分支(未合并到开发分支)的一些代码时,如何为特征创建分支

Git 当我需要其他分支(未合并到开发分支)的一些代码时,如何为特征创建分支,git,git-flow,Git,Git Flow,在完成我的任务时有一个很大的挑战,那就是完成相互依赖的任务 我在这张照片上说过。 假设我们有两个任务A和B来执行子任务A1、A2和B1、B2,假设任务B依赖于A 要理想地执行任务B,您应该执行类似于此图像的任务 但是这种情况在很多情况下都不会发生,例如,当从服务器执行A2工作时,为了避免浪费时间,我们决定同时处理任务B。 在这种情况下,我认为不正确的第一个解决方案是从A生成分支B,如下图所示,这是不正确的,因为分支B隐式包含A1,如果有bug,它将开发传输 分支B隐式地包含A1,如果有bu

在完成我的任务时有一个很大的挑战,那就是完成相互依赖的任务 我在这张照片上说过。 假设我们有两个任务A和B来执行子任务A1、A2和B1、B2,假设任务B依赖于A

要理想地执行任务B,您应该执行类似于此图像的任务

但是这种情况在很多情况下都不会发生,例如,当从服务器执行A2工作时,为了避免浪费时间,我们决定同时处理任务B。 在这种情况下,我认为不正确的第一个解决方案是从A生成分支B,如下图所示,这是不正确的,因为分支B隐式包含A1,如果有bug,它将开发传输

分支B隐式地包含A1,如果有bug,它将开发传输

如果A和B如此相互关联,这似乎是不可避免的。
如果a中存在bug,则需要将其合并或拾取到B(从a创建)

但对于高度耦合的任务,如A和B。。。我将只创建一个分支ABui和一个ABapp

假设任务B依赖于A

这意味着B将拥有您在任务A中编写的所有bug。如果此依赖关系成立,则无法避免


由于这些错误已在A1上修复,您可以将分支A1合并到分支B。

从功能分支进行分支是混乱过程的良好指示器。有时这是不可避免的,但每次你都必须考虑其他解决方案:

  • 即使还没有准备好,也要把它推到掌握(或者发展,如果这是你的主要分支的话)。但是,通过抽象或特性切换的分支来隐藏对用户的更改
  • 考虑重新确定优先级,以便在合并A之前不会启动功能B。在此之前,您可以使用特性C
  • 如果A不能在没有B的情况下发布,那么在单个分支中开发这两个分支
  • 你用GitFlow标记了你的问题——它通常意味着很多不必要的分支。只是为了让你知道-。仅当您同时维护产品的多个版本时才适用

    为了避免浪费时间,我们决定同时处理任务B


    虽然你认为开始做B不会浪费时间,但你可能会因为并行工作而浪费更多的时间。现代开发流程(准时制、约束理论、连续交付)教会我们拥有少量未完成的工作(即库存成本)-越小越好。分支过多,有大量未发布的代码,会增加未完成的工作,从而增加开发成本。

    你的问题是什么?这类问题很容易得到基于观点的答案。既然他们都会指出更多的问题,或者是解决你问题的同样好的替代方案,那么你将如何选择一个“被接受”的答案呢?是的,这确实是我写的。