将多个git分支视为一个

时间:2014-02-02 11:54:46

标签: git

我们正在使用git处理“主”和多分支策略。有多少个分支?很多,一些相当长的生活(10个长寿“团队”分支和20-30个短生活分支是正常的。)

我想看到所有“活动”分支的合并(我知道这些分支的列表是活动的) - 我不在乎这是否编译或者某些合并失败 - 我想看“大局”。

我尝试过使用“checkout master; checkout%branch% - 。” - 但我可以为一个分支做到这一点,因为我将看到的下一个分支将覆盖%branch%。此外,由于一个分支从另一个分支更新,我最终多次查看相同的已更改文件。

我的下一个尝试是在我见过的分支和下一个分支之间使用merge-base。所以如果我看过branch1,那么我的流程是“checkout master; reset --hard; checkout branch1 - 。;(review branch 1); merge-base branch1 branch2(emits commitX); reset --hard; checkout% commitX%; checkout branch2 - 。“ 这将使branch2成为更改(对于我的评论),但会遗漏branch1中的所有内容。

以上是伟大的 - 但是...... 1.确定分支的顺序是很难的(现在使用经验法则)。 2.这非常耗时且容易出错。 3.如果我犯了错误(选择错误的分支开始),我仍然会两次检查相同的更改。

是否有任何方法/工具可以帮助完成此类任务?

1 个答案:

答案 0 :(得分:1)

我建议,仅在您当地的仓库中, rebase 在主人之上的那些分支。
使用rebase,来自已经应用(通过另一个分支的rebase)的一个分支的提交将不会被重播。
因此,rebase的顺序并不重要(与多次合并相反) 另外,如果您激活git rerere,您可以记住可能发生的任何合并冲突,以便不必再次解决。

另请参阅“Git: How to rebase many branches at once?”。