管理依赖进行中的git功能分支/分支集

时间:2012-11-21 12:17:48

标签: git workflow feature-branch

最近,我似乎有这种重复的场景,即正在开发多个功能分支,其中一个功能分支(下图中为feature-b)取决于对另一个未完成功能的支持(在{{1}中开发) }):

feature-a

每当我修改---o---o--o master | +---o---o---o feature-a | +----o---o feature-b (包括交互式基础以修复功能中的错误)时,我需要将feature-a重新定义到feature-b。这些是本地分支,所以我可以随意修改它们。

我经常遇到以下情况:

feature-a

其中测试分支是正在开发的所有(相关)特征的组合,通过合并其上的所有相关特征分支(在图片 master testing ---o---o--o-------------------------------------------o---o | feature-a . . +---o---o---o . . | feature-b . . +----o---o ..................... . | feature-c . +----o---o ....................... masterfeature-b中生成 - 并暗示feature-c)。

目前,特别是如果具有更复杂的功能分支关系,我会feature-a不断打开以显示分支关系,并维护shell脚本以自动执行此变基,但此方法似乎很脆弱且一般令人讨厌。我想知道的是:

  1. 是否有一种描述甚至自动检测分支关系的方法,然后使用一个命令尝试重新执行所描述的关系(在上面的简单示例中) ,在通过重新定位或向头部添加新提交更改gitk后,在feature-a的新头上执行自动重新定位feature-b
  2. 用于将一组分支重新定位到其他提交的GUI工具(如果冲突会阻止操作,那么只是给出错误)?
  3. 管理这个分支混乱的其他想法?所涉及的意外复杂性花费太多  时间和耗尽太多的脑力。

1 个答案:

答案 0 :(得分:3)

  

我不喜欢把坏事推给别人看,我喜欢保持决赛   历史看起来干净。

这是一个坏习惯。您应该为“建议的更新”保留masterpu。将您的提交推送至pu,然后根据需要将pu重新定位到master。如果时机成熟,您可以从pu挑选,或者甚至将pu合并到master

这就是使用git repo本身的方式。避免堕入无尽分支的“兔子洞”。

related