← 中文资源

简体中文版本

Cargo: not a git repository 错误

修复 Cargo 的 git 依赖错误:在沙箱、CI 或子模块中,源目录不是 git 仓库时构建失败。

阅读英文原文

症状

cargo build 因 fatal: not a git repository 中止,通常只在 Docker 或 CI 中出现。在完整检出上的本地构建则正常。

诊断

检查是否存在 git 及仓库元数据:

git --version
ls -a .git
cargo build -v 2>&1 | grep -i git

修复

安装 git 并在需要处保留 .git:

RUN apt-get update && apt-get install -y git

优先使用 registry 依赖,或将其 vendor 化:

cargo vendor

再通过配置把构建指向 vendored 目录。

验证

在同一容器中重跑构建;依赖解析完成并进入编译阶段,不再出现 not a git repository 提示。