如何使用 .gitignore
回顾基础语法以及忽略优先级,避免在 CI 中踩坑。
Explore resourceProfessional .gitignore tools
谁在提交构建产物?为什么流水线缓存突然被清空?这份指南帮助你梳理 CI/CD 环境下的忽略策略,保证构建/测试/部署三阶段的文件只在该出现的地方出现。
✅ 建议在项目 Wiki 中维护「阶段 → 产物 → 存储位置」对照表:哪些文件上传到构建产物服务器、哪些被忽略、哪些写入 artifacts。
.next/、out/、dist/、.vercel/。CI 中使用 next export 时,将输出移动到 artifacts/ 再上传。logs/、tmp/、prisma/client/ 生成目录。保持 .env* 不提交,使用 secrets 注入。__pycache__/、.pytest_cache/、mlruns/ 等实验目录,模型发布到对象存储或 Git LFS。artifacts/ 作为临时输出目录,CI 完成后删除或上传.dockerignore,避免将 node_modules打入镜像.serverless/、.terraform/ 等目录必须忽略将脚本作为部署前置步骤,可快速捕捉被误追踪的敏感文件和产物。
#!/usr/bin/env bash # scripts/ci-verify-gitignore.sh set -euo pipefail echo "Running gitignore validation before deployment..." # 1. 确认 .env* 未被追踪 if git ls-files --cached | grep -E '\\.env(\\..+)?$' >/dev/null; then echo "::error::Found tracked .env file" git ls-files --cached | grep -E '\\.env(\\..+)?$' exit 1 fi # 2. 校验 build 目录是否被忽略 if [ -d "build" ] && git check-ignore build >/dev/null; then echo "Build folder ignored as expected ✔" else echo "::warning::build/ not ignored. Did you rename output path?" fi # 3. 确认 artifacts 目录存在(用于上传而非提交) mkdir -p artifacts echo "Artifacts folder ready: $(pwd)/artifacts"
可在 GitHub Actions / GitLab CI 中执行,并添加 --strip-trailing-cr 防止 Windows 换行导致 diff。
.cache/、.turbo/、.parcel-cache/ 等统一前缀,便于 ignore检查是否存在包级 .gitignore 覆盖,或部署脚本在构建后执行了 git add .。可在流水线中运行git status --ignored 检查忽略状态。
将实值存储在 CI Secret 或密钥管理中,仅提交 `.env.example` 模板。Validator 可以用来确认 `.env` 未被追踪。
不建议。请改用 CI 的 artifact/upload 机制,将构建结果存储在临时存储或对象存储中,保持仓库轻量。
回顾基础语法以及忽略优先级,避免在 CI 中踩坑。
Explore resource处理流水线误提交产物时的快速修复步骤。
Explore resource在 CI 中验证 build / test 目录是否仍被忽略。
Explore resource