You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计Git分支的推送次数?非提交次数统计需求

统计向Git分支的推送次数(用于GitHub Actions)

Git本身不会直接追踪向分支的推送次数,它仅记录提交历史。git rev-list --count只能统计分支上的提交总数,无法满足统计推送次数的需求。针对GitHub Actions场景,可通过以下方法实现:

方法一:调用GitHub REST API统计推送事件

借助GitHub的Events API筛选目标分支的PushEvent事件,统计其数量,这是最直接的方案:

GitHub Actions示例代码

- name: 获取当前分支的推送次数
  id: push-count
  run: |
    # 提取当前分支名称
    BRANCH_NAME=${GITHUB_REF##*/}
    # 调用GitHub API获取推送事件并统计数量
    PUSH_COUNT=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
      "https://api.github.com/repos/${{ github.repository }}/events?per_page=100" \
      | jq '[.[] | select(.type == "PushEvent" and .payload.ref == "refs/heads/'$BRANCH_NAME'")] | length')
    # 将结果输出为Actions变量
    echo "count=$PUSH_COUNT" >> $GITHUB_OUTPUT

- name: 输出推送次数
  run: echo "当前分支推送次数为 ${{ steps.push-count.outputs.count }}"

注意事项

  • 上述API请求默认返回最近100条事件,若分支推送次数超过100,需要处理分页逻辑(通过page参数循环请求累加数量)。
  • ${{ secrets.GITHUB_TOKEN }}是GitHub Actions自动提供的令牌,具备仓库事件的读取权限。

方法二:基于推送标记的统计(需额外配置)

如果每次推送都通过自动化流程打专属标签(比如push-v1、push-v2),可以通过标签统计推送次数:

git tag -l "push-v*" | wc -l

但该方案需要额外的标签生成逻辑,通用性较弱。

内容的提问来源于stack exchange,提问作者Amin Ba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 14:07:16