Skip to content

健康诊断

Git Doctor 提供全方位的仓库健康诊断功能。

仓库体积分析

分析 .git 目录的大小和对象分布。

运行方式:

  • 命令面板:Git Doctor: 分析仓库体积
  • CLI:git-doctor size

分析内容

指标说明
总大小.git 目录总体积
松散对象未打包的单独对象数量和大小
Pack 文件打包后的对象文件数量和大小
大文件超过阈值的文件(默认 1MB)

优化建议

问题解决方案
大文件过多考虑使用 Git LFS
松散对象过多运行 git gc
Pack 文件过大检查是否有不必要的历史

提交质量分析

检查提交消息是否符合规范。

运行方式:

  • 命令面板:Git Doctor: 分析提交质量
  • CLI:git-doctor commits

检查项

  • ✅ Conventional Commits 格式
  • ✅ 提交消息长度
  • ✅ 提交频率分布
  • ✅ 作者贡献统计

Conventional Commits 格式

<type>(<scope>): <subject>

<body>

<footer>

支持的 type:

Type说明
feat新功能
fixBug 修复
docs文档更新
style代码格式
refactor重构
test测试
chore构建/工具

分支健康度分析

检测分支的健康状态。

运行方式:

  • 命令面板:Git Doctor: 分析分支健康度
  • CLI:git-doctor branches

检查项

问题类型说明建议
僵尸分支超过 90 天未更新考虑删除或激活
已合并未删除已合并到主分支但未删除建议删除
命名不规范不符合命名约定重命名或删除

敏感信息扫描

检测代码中的敏感信息泄露。

运行方式:

  • 命令面板:Git Doctor: 扫描敏感信息
  • CLI:git-doctor security

检测类型

类型示例模式风险级别
AWS Access KeyAKIA[0-9A-Z]{16}🔴 高
AWS Secret Key[0-9a-zA-Z/+]{40}🔴 高
GitHub Tokenghp_[a-zA-Z0-9]{36}🔴 高
GitHub OAuthgho_[a-zA-Z0-9]{36}🔴 高
私钥文件-----BEGIN RSA PRIVATE KEY-----🔴 严重
密码password=xxx🟡 中
API Keyapi_key=xxx🟡 中
数据库连接串mongodb://user:pass@🔴 高

Gitleaks 集成

Git Doctor 支持集成 Gitleaks 进行专业级检测:

bash
# 检查 Gitleaks 状态
Git Doctor: 检查 gitleaks 状态

# 如果未安装,会自动使用内置检测器

处理建议

  1. 立即撤销 泄露的凭证
  2. 使用 git filter-branch 或 BFG Repo-Cleaner 清理历史
  3. 考虑使用环境变量或密钥管理服务
  4. 安装 Pre-commit Hook 防止再次泄露

完整诊断

一键运行所有诊断分析。

运行方式:

  • 命令面板:Git Doctor: 运行完整诊断
  • CLI:git-doctor analyze

诊断报告

┌─────────────────────────────────────────┐
│  Git Doctor 诊断报告                     │
├─────────────────────────────────────────┤
│  📊 健康评分: 85/100                     │
│                                         │
│  📦 仓库体积: 正常                       │
│  📝 提交质量: 良好 (78%)                 │
│  🌿 分支健康: 警告 (2 僵尸分支)          │
│  🔒 安全风险: 中 (2 项)                  │
│                                         │
│  ⚠️ 发现 4 个问题需要关注                │
└─────────────────────────────────────────┘

健康评分计算

维度权重说明
仓库体积20%大小、大文件数量
提交质量30%规范率、频率
分支健康20%僵尸分支、命名规范
安全风险30%敏感信息数量和级别

基于 MIT 许可发布