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

如何在GitHub Actions中获取main分支的短Git SHA值?

在GitHub Actions中获取main分支最新短Git SHA的方法

你可以通过两种可靠的方法获取main分支的最新短SHA,避开触发分支的提交值:

方法一:使用Git命令(需完整拉取仓库)

默认GitHub Actions仅拉取触发分支的最新提交,因此需要先拉取完整仓库历史并获取远程main分支的SHA:

  1. 配置checkout步骤时设置fetch-depth: 0,拉取完整仓库所有分支的历史
  2. 拉取远程main分支的最新更新
  3. 提取main分支的短SHA

完整工作流示例:

name: Fetch Main Branch Short SHA
on: [push, pull_request]

jobs:
  retrieve-sha:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout full repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0  # 拉取完整仓库历史,包含所有分支

      - name: Fetch latest main branch
        run: git fetch origin main

      - name: Capture main branch short SHA
        id: get-sha
        run: echo "short_sha=$(git rev-parse --short origin/main)" >> $GITHUB_OUTPUT

      - name: Output result
        run: echo "Main branch latest short SHA: ${{ steps.get-sha.outputs.short_sha }}"

关键说明:

  • fetch-depth: 0是必要的,否则无法获取main分支的历史信息
  • git rev-parse --short origin/main直接读取远程main分支的最新短SHA,无需切换分支

方法二:使用GitHub API(无需完整拉取仓库)

如果仓库体积较大,不想拉取完整历史,可以调用GitHub REST API获取main分支的最新提交SHA,再截取前7位作为短SHA:

name: Get Main SHA via API
on: [push, pull_request]

jobs:
  get-sha-api:
    runs-on: ubuntu-latest
    steps:
      - name: Fetch main branch SHA via API
        id: get-sha
        run: |
          # 调用API获取main分支信息
          branch_data=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
            "https://api.github.com/repos/${{ github.repository }}/branches/main")
          # 提取完整SHA并截取前7位
          full_sha=$(echo "$branch_data" | jq -r '.commit.sha')
          short_sha=${full_sha:0:7}
          echo "short_sha=$short_sha" >> $GITHUB_OUTPUT

      - name: Print short SHA
        run: echo "Main branch latest short SHA: ${{ steps.get-sha.outputs.short_sha }}"

关键说明:

  • ${{ secrets.GITHUB_TOKEN }}是GitHub自动提供的令牌,拥有仓库的只读权限
  • jq工具用于解析JSON响应,Ubuntu环境默认已预装,其他环境可能需要额外安装

内容的提问来源于stack exchange,提问作者Aviral Srivastava

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 19:22:17