计算git中所有分支的标记创建和当前头部提交之间的提交数

计算git中所有分支的标记创建和当前头部提交之间的提交数,git,Git,从中,我学到了如何获取自创建标记以来单个分支上的提交次数。我现在的问题是,既然标记是跨存储库中的所有分支创建的,那么我如何才能获得绝对差异 例如,我有我的分支母版、分支特征/somefeature1、特征/somefeature2、发布/somerelease和我的标记引用/tags/sometag1 其中,我想总结自创建refs/tags/sometag1以来的所有提交。假设您谈论的是本地分支,您可以使用rev list进行完全相同的计算: git rev-list --count --bra

从中,我学到了如何获取自创建标记以来单个分支上的提交次数。我现在的问题是,既然标记是跨存储库中的所有分支创建的,那么我如何才能获得绝对差异

例如,我有我的分支母版、分支特征/somefeature1、特征/somefeature2、发布/somerelease和我的标记引用/tags/sometag1


其中,我想总结自创建refs/tags/sometag1以来的所有提交。

假设您谈论的是本地分支,您可以使用
rev list
进行完全相同的计算:

git rev-list --count --branches ^refs/tags/sometag1
所有选项都与链接问题中的选项相同,因此如果需要,您还可以传递类似于
--无合并的内容

请注意,这从拓扑或祖先的意义上解释了“因为”,因此如果您有一个从未合并过的旧分支,那么这些未合并的提交将计入总数

对于严格基于提交日期的解决方案,您可以执行以下操作:

git rev-list --count --branches --since="$(git show -s --format=%ct refs/tags/sometag1^{})"

如果标记没有出现在某个分支的历史记录中,例如在创建标记之前从
master
拆分的某个分支,会发生什么情况?在我的脑海中,您可以使用
git branch--contains
来标识具有此标记的所有分支,然后使用当前解决方案来获取计数。这可以通过脚本来完成(@VonC你在读这个吗?)。