繁体   English   中英

当我需要其他分支的一些代码时如何为功能创建分支(未合并到开发分支中)

[英]How to create branch for feature when i need some code of other branch (not merged in develop branch)

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

B分支隐含A1,如果有bug,开发转移。

如果 A 和 B 如此相互关联,这似乎是不可避免的。
如果 A 中存在错误,您需要将其合并或挑选到 B(从 A 创建)。

但是对于像 A 和 B 这样的高度耦合的任务......我只会创建一个分支 ABui 和一个 ABapp

从特征分支分支是混乱过程的一个很好的指标 有时这是不可避免的,但每次您都必须考虑其他解决方案:

  1. 将 A 推到 master (或者如果那是你的主分支,则进行开发),即使它还没有准备好。 但是通过抽象分支或功能切换隐藏用户的更改。
  2. 考虑重新确定优先级,以便在合并 A 之前不会启动功能 B。 在此之前,您可以处理功能 C。
  3. 如果没有 B 就无法发布 A,那么在一个分支中开发两者。

你用 GitFlow 标记了你的问题——它通常意味着很多不必要的分支。 只是让您知道-GitFlow 是一种过时的分支策略 仅当您同时维护产品的多个版本时才适用。

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

虽然您认为开始在 B 上工作不会浪费时间,但您最终可能会因为并行工作而浪费更多时间。 现代开发流程(即时、约束理论、持续交付)告诉我们有少量未完成的工作(也称为库存成本)——越小越好。 通过分支过多并拥有大量未发布的代码,您会增加未完成工作的数量,从而增加开发成本。

假设任务 B 依赖于 A。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM