【问题标题】:Count number of commits between tag creation and current HEAD commit across all branches in git计算 git 中所有分支的标签创建和当前 HEAD 提交之间的提交次数
【发布时间】:2017-10-24 06:07:32
【问题描述】:

Count the number of commits on a Git branch 我了解到,自从我的标签创建以来,如何获取单个分支上的提交次数。我现在的问题是如何获得绝对差异,因为标签是在我的存储库中的所有分支中创建的?

例如,我有我的分支 master、分支 feature/somefeature1、feature/somefeature2、release/somerelease 和我的 Tag refs/tags/sometag1。

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

【问题讨论】:

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

标签: git


【解决方案1】:

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

git rev-list --count --branches ^refs/tags/sometag1

所有与链接问题相同的选项都适用,因此如果需要,您还可以传递 --no-merges 之类的内容。

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

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

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

【讨论】:

    猜你喜欢
    • 2012-07-24
    • 1970-01-01
    • 2017-05-30
    • 2014-12-12
    • 1970-01-01
    • 2017-01-31
    • 2023-03-15
    • 2015-12-01
    • 2013-04-28
    相关资源
    最近更新 更多