从发布分支上的构建所涉及的开发中检索功能列表

Retrieve list of features from develop(s) concerned by a build on release branch

我们有兴趣制作一个脚本来简化我们的构建过程。

为此,我们需要列出自上次构建以来合并到一个或多个开发分支的 Git 功能。

我做了这个简单的例子,抱歉缺乏设计。

假设我们当前正在进行 build2 合并提交

我们想知道(从脚本中)交付了哪些功能,然后关注此构建

这些功能是 D7 和 D6,因为它们在各自的开发分支上合并。

这里的困难可能是忽略了我们之前构建中已经存在的之前的提交(D4、D3 等)以及有两个开发分支相继合并的事实。

我知道我们可以获得存在于一个分支而非另一个分支上的合并提交。

使用类似的东西:

git log --oneline --merges --abbrev-commit origin/develop/$BRANCH...origin/release/$BRANCH

但是当使用多个开发或项目分支时,这会变得更加复杂。 并且可能会 returns 误报。

(可能存在会改变行为的冲突解决提交)

做那样的事有更好的主意吗?

由于您在评论中添加了两个开发分支在每次构建之前都合并到 release 中,因此您可以通过以下方式列出构建之间的提交:

git log --oneline --no-merges build1..build2

...应该 return 只提交 D6 和 D7。

(郑重声明,git 中的 A..B(两个点)范围表示“从 B 可到达但从 A 不可到达的所有内容”。A...B 构造 (三个点)是不同的东西,它是A和B之间的对称差,所以就像问A..B加上B..A

注意:--no-merges 选项是仅获取“有用”提交的典型方法,但您的上下文(解析合并消息)解释了为什么您需要 --merges