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

如何在GitHub Actions工作流中获取commit的日期

GitHub Actions 中获取Commit日期并调用的实现方案

你完全可以在工作流里拿到commit的日期信息,不需要依赖额外第三方动作,常用的可行方式有两种:

  • 方式一:直接读取GitHub内置上下文值(无额外依赖,适配push、PR类触发场景)
    GitHub Actions 运行时自带的上下文中已经存储了当前触发工作流的commit元数据,其中github.event.head_commit.timestamp就是标准ISO格式的commit提交时间,你可以直接在步骤里调用,也可以把它设置为全局环境变量供后续所有步骤使用:

    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: 将commit日期设置为全局环境变量
            run: echo "COMMIT_TIMESTAMP=${{ github.event.head_commit.timestamp }}" >> $GITHUB_ENV
          - name: 直接调用该日期
            run: echo "当前commit提交时间为 $COMMIT_TIMESTAMP"
    
  • 方式二:通过Git命令获取(兼容性最强,支持自定义时间格式)
    如果你的工作流是定时触发、手动触发这类不携带head_commit上下文的场景,或者你需要自定义日期输出格式,可以在检出代码后通过原生git命令提取日期:

    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: 检出仓库代码
            uses: actions/checkout@v4
            with:
              fetch-depth: 0 # 配置为0拉取全量提交记录,避免浅克隆导致元数据缺失
          - name: 提取自定义格式的commit日期
            id: extract_date
            run: |
              # 示例输出格式为 年-月-日 时:分:秒,可自行调整date参数修改格式
              FORMATTED_COMMIT_DATE=$(git log -1 --pretty=format:"%cd" --date=format:"%Y-%m-%d %H:%M:%S")
              echo "formatted_date=$FORMATTED_COMMIT_DATE" >> $GITHUB_OUTPUT
          - name: 调用提取到的日期
            run: echo "格式化后的commit日期为 ${{ steps.extract_date.outputs.formatted_date }}"
    

注意:GitHub Actions 默认没有预置直接存储commit日期的内置环境变量,你可以根据上面的方法自行提取后写入$GITHUB_ENV,就能实现全工作流内的环境变量调用效果。

内容的提问来源于stack exchange,提问作者Fran Cirone

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:33:06