7

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

---o---o--o                    master
       |
       +---o---o---o           feature-a
                   |
                   +----o---o  feature-b

每当我修改feature-a(包括交互式变基以修复功能中的错误)时,我需要变基feature-bfeature-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)。

目前,特别是如果有更复杂的功能分支关系,我gitk不断地打开可视化的分支关系,并维护 shell 脚本来自动做这个变基,但是这种方法看起来很脆弱,而且很麻烦。我想知道的:

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

1 回答 1

3

我不喜欢把坏东西推给别人看,我喜欢让最终的历史看起来干净。

这是一个坏习惯。您应该为“建议的更新”保留 amaster和 a 。pu将您的提交推送到,pu然后根据需要重新设置。时机成熟时,您可以从中挑选甚至合并到.pumasterpupumaster

这就是git repo本身的处理方式。避免掉入无尽分支的“兔子洞”。

有关的

于 2012-12-27T03:57:42.317 回答