如何通过GitHub Action检出私有仓库的指定Commit?
修复GitHub Actions检出指定Commit ID的问题
最优解决方案:直接通过ref参数指定Commit ID
actions/checkout的ref参数支持直接传入完整或短格式的Commit SHA,无需和分支名组合。直接将ref设置为目标Commit ID即可一步完成检出:
- name: Checkout my_organization/my_private_repository uses: actions/checkout@v3 with: repository: my_organization/my_private_repository ref: 60cfa20 path: my_private_repository token: ${{ secrets.MY_PRIVATE_REPOSITORY_SECRET_ACTIONS }} - name: lein install my_private_repository run: | cd my_private_repository && lein install && cd ..
原方法失败原因及修复
方法1失败原因
默认情况下,actions/checkout执行浅克隆(--depth=1),仅拉取指定分支的最新提交,本地仓库没有完整的提交历史,导致git checkout 60cfa20找不到目标提交。
若坚持使用后续步骤执行git checkout,需在checkout步骤添加fetch-depth: 0拉取完整仓库历史:
- name: Checkout my_organization/my_private_repository uses: actions/checkout@v3 with: repository: my_organization/my_private_repository ref: main path: my_private_repository token: ${{ secrets.MY_PRIVATE_REPOSITORY_SECRET_ACTIONS }} fetch-depth: 0 # 拉取全量提交历史 - name: lein install my_private_repository run: | cd my_private_repository && git checkout 60cfa20 && lein install && cd ..
方法2失败原因
ref: main/60cfa20是非法的引用格式,GitHub Actions无法识别这种分支与Commit ID的组合写法。ref参数仅接受合法的Git引用:分支名、标签名或Commit SHA。
内容的提问来源于stack exchange,提问作者Pedro Delfino
相关产品推荐
相关产品推荐

