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

如何用GitHub Workflow获取近7天推送到master分支的所有提交

GitHub Workflow 实现近7天master分支提交展示方案

一、计算7天前的日期(第2步)

在GitHub Actions的Ubuntu runner上,直接用GNU Date命令就能稳定实现,无需额外工具:

  • 在Workflow步骤中执行shell命令,生成日期并保存为环境变量,方便后续调用:
    TODAY=$(date +%Y-%m-%d)
    7_DAYS_AGO=$(date -d "-7 days" +%Y-%m-%d)
    echo "TODAY=$TODAY" >> $GITHUB_ENV
    echo "7_DAYS_AGO=$7_DAYS_AGO" >> $GITHUB_ENV
    
  • 若需指定时区(比如北京时间),可先设置TZ环境变量:
    export TZ="Asia/Shanghai"
    TODAY=$(date +%Y-%m-%d)
    7_DAYS_AGO=$(date -d "-7 days" +%Y-%m-%d)
    

二、获取日期区间内的提交列表(第3步)

需要先拉取完整代码历史(默认checkout仅拉取最新提交),再用git log筛选区间内的master分支提交,最后将结果输出到Workflow摘要中:

完整Workflow示例

name: 展示近7天Master分支提交
on: 
  workflow_dispatch: # 手动触发
  schedule:
    - cron: '0 0 * * *' # 每天UTC零点自动触发

jobs:
  list-commits:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取代码完整历史
        uses: actions/checkout@v4
        with:
          fetch-depth: 0 # 必须设置为0,确保拉取所有提交历史

      - name: 计算日期区间
        run: |
          export TZ="Asia/Shanghai" # 可选:设置时区
          TODAY=$(date +%Y-%m-%d)
          7_DAYS_AGO=$(date -d "-7 days" +%Y-%m-%d)
          echo "TODAY=$TODAY" >> $GITHUB_ENV
          echo "7_DAYS_AGO=$7_DAYS_AGO" >> $GITHUB_ENV

      - name: 提取并展示提交列表
        run: |
          echo "### Master分支提交记录(${{ env.7_DAYS_AGO }} 至 ${{ env.TODAY }})" >> $GITHUB_STEP_SUMMARY
          # 用--oneline展示简洁提交信息,可根据需求调整git log参数(比如添加--author筛选作者)
          git log --since="${{ env.7_DAYS_AGO }}" --until="${{ env.TODAY }}" --oneline master >> $GITHUB_STEP_SUMMARY

三、更简便的实现方法

无需手动计算日期,直接用git log的相对时间参数--since="7 days ago",一步完成筛选:

简化后的Workflow步骤

- name: 拉取代码完整历史
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: 提取近7天提交列表
        run: |
          echo "### Master分支近7天提交记录" >> $GITHUB_STEP_SUMMARY
          git log --since="7 days ago" --oneline master >> $GITHUB_STEP_SUMMARY

这种方式更简洁,且git会自动处理时间计算,无需额外步骤。

内容的提问来源于stack exchange,提问作者Luca D'Amico

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:25:32