首页 > 解决方案 > 并行开发“兄弟”分支的最佳 git 工作流程是什么

问题描述

在处理功能分支(feature-branch-a)(feature-branch-a主分支)时,我想对master.

由于我在 中进行了很多更改feature-branch-a,因此将修复基于feature-branch-a而不是基于master分支是很有意义的,因此我fixture-Bfeature-branch-a(因为我最终将合并feature-branch-amaster)创建了新分支。但是,我仍然继续feature-branch-a与这个新分支一起开发fixture-B。现在将分支fixture-Bfeature-branch-a结果合并Already up to date,因此没有完成“合并提交”(如我所愿)。

我在哪里弄错了/如何最好地处理?

标签: gitversion-control

解决方案


由于feature-b是从创建的feature-a,a 到 b 的合并将导致 noop: nothing to merge,因为源分支 ( feature-a) 已经是目标的祖先feature-b

 a--a--a  (feature-a)
        \
         b--b--b (feature-b)

Agit checkout feature-b ; git merge feature-a不会移动feature-bHEAD。

Agit checkout feature-a ; git merge feature-b会将feature-aHEAD 更新为feature-b(称为“快进合并”):

 a--a--a  
        \
         b--b--b (feature-b, feature-a)

推荐阅读