最近我开始研究一个大特性,所以我创建了一个新的 feature/xyz 分支。问题是这个功能很大,所以我需要~3个月才能完成。我想将在 develop 中取得的进展安全地 merge 到我的功能分支,而不必担心来自 develop 分支的更改会覆盖我已经在我的功能分支中所做的更新。我之前尝试将 develop merge 到 feature/xyz 的结果是我已经在恢复的新功能中进行了一些更改。

实现这一目标的命令是什么?谢谢

最佳答案

唯一的安全在于学习、辨别和频繁的 merge 。

只有您了解 developfeature/xyz 上的代码是如何对齐的,没有其他人了解。只有你才能以一种有洞察力的方式正确地融合这两种流动。即使使用默认的 merge 策略(远没有 -S ours-X theirs 危险),您仍然必须始终查看结果。

当然,您可能需要一些帮助,而 git 会提供一些帮助。例如,您可以使用 git 记录的分辨率 - rerere 来帮助您在最初做出 merge 决定后做出相同的正确 merge 决定。

一个相当常见且相对简单的模型,使用您为分支提供的名称,可以像这样为您工作,

  • develop 是发展的主推力发生的分支
  • xyz 是您开发 xyz 功能的分支
  • xyz_stage 是 merge developxyz 代码的分支,保持该分支稳定与 1351313131813131813131813131413251324131413132513241431431431325143131313131313131313131414141 的各自稳定点一致当您准备发布 xyz 功能或其一部分时,这也是您最终 merge 回 develop 的分支。

  • 以上假设你不仅 merge developxyz,但你也 merge xyzxyz_stage不时和确保的develop部分发布至今,以xyz_stage工作,并与来自xyz代码通过相关测试结合进行。

    尽管如此,您仍然必须选择如何制作 xyz_stage 分支,在那里您处理该功能,了解开发的进度。

    最干净的选择是 - 不要让它意识到。这就是为什么你有 develop 两个开发流程汇集在一起​​的原因。只要不延长 xyz 的开发时间,这种方法是可行且合理的。

    当您对暂存分支感到满意时,第二个选项是将 xyz_stage merge 回 xyz。这样你就有了稳定点,你可以继续并在上面开发 xyz_stage 功能。

    这是该过程的简单说明,并附有注释:

    GitFlow : safely merge develop changes to a feature branch-LMLPHP

    关于GitFlow : safely merge develop changes to a feature branch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21661263/

    10-13 08:58