最近,我似乎有这样的重复场景,即正在开发多个功能分支,其中一个功能分支(feature-b
在下图中)取决于对另一个未完成功能(在 中开发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 .......................
其中测试分支是正在开发的所有(相关)特征的组合,通过合并其上的所有相关特征分支产生(在图片master
中feature-b
,,feature-c
- 和暗示feature-a
)。
目前,特别是如果有更复杂的功能分支关系,我gitk
不断地打开可视化的分支关系,并维护 shell 脚本来自动做这个变基,但是这种方法看起来很脆弱,而且很麻烦。我想知道的:
- 有没有一种方法可以描述甚至自动检测分支关系,然后用一个命令尝试重新执行所描述的关系(在上面的简单示例中,通过变
feature-a
基或向头部添加新提交进行更改后,自动执行feature-b
变基的新负责人feature-a
)。 - 用于将一组分支重新定位到其他提交的GUI 工具(如果冲突会阻止操作,只需给出错误就可以了)?
- 管理这个分支混乱的其他想法?所涉及的意外复杂性会花费太多时间并消耗太多脑力。