从发布分支上的构建所涉及的开发中检索功能列表
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
。
我们有兴趣制作一个脚本来简化我们的构建过程。
为此,我们需要列出自上次构建以来合并到一个或多个开发分支的 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
。