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

将CI/CD从GitLab迁移至GitHub Actions时PreCommit报错求助

GitHub Actions中PreCommit运行失败的解决方法

问题背景

将CI/CD从GitLab迁移到GitHub Actions时,PreCommit库无法正常工作,报错提示:

An error has occurred: FatalError: git failed. Is it installed, and are you in a Git repository directory?

问题原因

  1. Git未安装:你使用的python:3.11官方容器镜像默认不包含Git,PreCommit依赖Git来识别仓库和管理钩子。
  2. 多余的git init步骤:actions/checkout已经将仓库完整拉取到环境中,手动执行git init会覆盖原有仓库的Git元数据,导致PreCommit无法识别当前目录为合法Git仓库。

解决步骤

1. 在容器中安装Git

在Set up Python步骤前添加安装Git的命令,利用容器的包管理器完成安装。

2. 移除git init步骤

删除多余的初始化命令,保留actions/checkout拉取的原始仓库结构。

3. 升级Action组件版本(可选但推荐)

将actions/checkout、actions/setup-python、actions/cache升级到最新稳定版,提升兼容性和可靠性。

修改后的完整Workflow代码

name: CI Workflow

on:
  push:
    branches:
      - main

jobs:
  pre-commit-test:
    runs-on: ubuntu-latest
    container:
      image: python:3.11
    
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Print current directory
      run: pwd

    - name: Install Git in container
      run: |
        apt-get update
        apt-get install git -y

    - name: Set up Python 3.11
      uses: actions/setup-python@v5
      with:
        python-version: 3.11
          
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt

    - name: Check Git version
      run: git --version

    - name: Cache pre-commit hooks
      uses: actions/cache@v4
      with:
        path: ~/.cache/pre-commit
        key: ${{ runner.os }}-precommit-${{ hashFiles('.pre-commit-config.yaml') }}

    - name: Install pre-commit
      run: pip install pre-commit

    - name: Run pre-commit with debug
      run: pre-commit run --all-files

关键修改说明

  • 新增Install Git in container步骤,解决容器内Git缺失的核心问题。
  • 删除Initialize Git步骤,避免破坏actions/checkout创建的合法Git仓库。
  • 升级各Action组件到最新版,适配GitHub Actions的最新环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 05:12:43