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

如何在Git仓库B中获取仓库A两个标签间的提交列表?

无需完整克隆仓库,跨仓库获取Git标签间的提交列表

当然可以不用完整克隆仓库A,通过Git的远程操作就能实现需求,尤其适合你在GitHub Actions共享工作流里的场景,下面是具体方案:

核心思路

Git支持直接与远程仓库交互,只拉取必要的标签和提交元数据(无需完整克隆文件内容),就能执行git log查询两个标签间的提交列表。

具体操作步骤

1. 临时添加远程仓库并轻量拉取数据

在仓库B的环境(或GitHub Actions runner)中执行以下命令:

# 添加临时远程仓库指向仓库A
git remote add temp-repo <仓库A的Git地址>

# 仅拉取所需的两个标签及关联的提交历史(--filter=blob:none 跳过文件内容,大幅减少数据量)
git fetch temp-repo tag <tag1> tag <tag2> --filter=blob:none

# 查询两个标签间的提交列表
git log --pretty=oneline <tag1>..<tag2>

# 可选:删除临时远程仓库
git remote remove temp-repo

2. 适配GitHub Actions共享工作流

将上述逻辑封装成可复用的工作流,接收仓库地址、起始标签、结束标签作为输入参数,同时处理私有仓库的权限问题:

name: Get Cross-Repo Commit List
on:
  workflow_call:
    inputs:
      repo-url:
        description: "目标仓库的Git地址(如https://github.com/xxx/repoA.git)"
        required: true
        type: string
      tag-from:
        description: "起始标签"
        required: true
        type: string
      tag-to:
        description: "结束标签"
        required: true
        type: string
    secrets:
      repo-token:
        description: "访问私有仓库的token(如GITHUB_TOKEN)"
        required: false

jobs:
  fetch-commits:
    runs-on: ubuntu-latest
    steps:
      - name: 配置Git访问权限(针对私有仓库)
        if: inputs.repo-token
        run: |
          # 将仓库地址替换为带token的格式,避免权限问题
          REPO_URL=$(echo "${{ inputs.repo-url }}" | sed "s|https://|https://${{ secrets.repo-token }}@|")
          echo "REPO_URL=$REPO_URL" >> $GITHUB_ENV

      - name: 获取提交列表
        run: |
          # 使用处理后的仓库地址(若无token则用原地址)
          REPO_URL=${{ env.REPO_URL || inputs.repo-url }}
          git remote add temp-repo $REPO_URL
          git fetch temp-repo tag ${{ inputs.tag-from }} tag ${{ inputs.tag-to }} --filter=blob:none
          git log --pretty=oneline ${{ inputs.tag-from }}..${{ inputs.tag-to }}
          git remote remove temp-repo

其他仓库(如C、D)调用这个共享工作流时,只需传入对应的仓库地址和标签参数即可。

优势说明

  • 相比完整克隆,--filter=blob:none仅拉取提交历史、标签等元数据,数据量减少90%以上,执行速度更快
  • 无需在仓库B中保留仓库A的任何文件,临时远程用完即可删除,环境干净
  • 完美适配GitHub Actions的共享工作流模式,支持多仓库复用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:16:12