Git:壁球与DAG合并

时间:2017-08-26 12:25:49

标签: git github merge branch git-flow

我试图使用我第一次见到Gitflow Workflow时遇到的comparison of workflows at Atlassian。主要思想是开发在develop分支上完成,其中包含从功能分支合并的所有修改,之后我们将develop合并到master。这种方式功能分支永远不会直接与我们的master进行交互。

我希望通过仅发布提交master分支上设置干净历史记录。因此,只有在版本更改时才应添加新的提交,但我仍然希望在git树上看到合并的位置普通合并通常会对自己进行一些提交,并且会在历史记录中显示多个提交,而不是仅提交一个新提交。 壁球合并能够解决问题,他们将所有更改压缩到一个提交中,然而,他们搞砸了我的git树,因为壁球合并不会以合并提交结束但普通提交只有一个父母没有显示两个分支之间的连接。 (这个傻瓜GitHub思考master也落后于develop。)

我希望master的历史看起来像这样: master

develop的历史: develop

Git树: Git tree

有没有办法让两个父母与两个父母合并创建一个DAG( Directed Acyclic Graph )并连接两个合并的分支,这意味着我的git树会告诉我哪个点是{ {1}}(或develop)分支已合并到release

1 个答案:

答案 0 :(得分:0)

Oridinary merge正是你所要求的 - 通过链接到源分支来压缩变化。如果您不想查看合并的提交,则只需要请求它。您可以向--first-parent命令提供git log参数,但不会输出它们:

git log --first-parent origin/master

PS:捆绑的gitksourcetree/macosgitextensions支持该功能。根据我的知识,这不是由公共网络服务实现的,而是用于" bitbucket服务器"付费的独立服务器应该是这样做的插件。