SuperAPI AI 工具集

keeping-git-repos-clean

编程与开发

查看项目

更新于 10-15 23:44

技能介绍

用途:防止、检测并修复不应进入 Git 仓库的文件,主要分两类——密钥(.env、API token、硬编码凭据)和开发产物(构建输出、缓存、临时数据库、编辑器与系统噪声文件)。核心提醒:.gitignore 不会取消已提交文件的跟踪,已跟踪文件仍会继续被提交。

主要能力与用法:

  1. 停止跟踪但保留本地副本:git rm --cached path/to/file(目录用 git rm -r --cached some/dir/),再写入 .gitignore 并提交。--cached 是关键,普通 git rm 会删除工作区文件。
  2. 审计实际跟踪内容:git ls-files 配合 grep 检查 .env、.pem、.key、.db、.sqlite、.DS_Store、node_modules/、pycache/ 等;也可用 git ls-files | xargs -I{} du -h {} | sort -rh | head 查找异常大的被跟踪文件。
  3. 密钥处理顺序:先轮换/吊销凭据(一旦推送即视为泄露),再取消跟踪并添加 .env.example(仅占位值),必要时用 git filter-repo --invert-paths --path .env 或 BFG 清理历史并强制推送;历史重写会改变 SHA 并影响协作者,通常由维护者手动执行。
  4. 预防:设置全局忽略 git config --global core.excludesFile ~/.gitignore_global,并写入 .DS_Store、.swp、todo.db、.profraw 等;用 pre-commit 钩子接入 gitleaks 与 detect-secrets 在提交时拦截密钥。
  5. 验证可能弄脏工作区:编译、测试、资源管线可能生成未忽略文件或重新生成被跟踪产物。建议用 git status --short 前后夹住验证命令,只暂存审查过的路径,避免 git add -A;必要时在临时副本中运行构建。

适用场景:公开仓库、静态站点(如 GitHub Pages 上传整个仓库)尤其危险,任何被跟踪文件都可被公开下载。

限制:本资料未提供具体收费、价格或平台支持信息;历史清理需人工决策,不应自动化提交 PR。该仓库本身无密钥类文件,主要关注开发产物。