Appearance
健康诊断
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 | 新功能 |
fix | Bug 修复 |
docs | 文档更新 |
style | 代码格式 |
refactor | 重构 |
test | 测试 |
chore | 构建/工具 |
分支健康度分析
检测分支的健康状态。
运行方式:
- 命令面板:
Git Doctor: 分析分支健康度 - CLI:
git-doctor branches
检查项
| 问题类型 | 说明 | 建议 |
|---|---|---|
| 僵尸分支 | 超过 90 天未更新 | 考虑删除或激活 |
| 已合并未删除 | 已合并到主分支但未删除 | 建议删除 |
| 命名不规范 | 不符合命名约定 | 重命名或删除 |
敏感信息扫描
检测代码中的敏感信息泄露。
运行方式:
- 命令面板:
Git Doctor: 扫描敏感信息 - CLI:
git-doctor security
检测类型
| 类型 | 示例模式 | 风险级别 |
|---|---|---|
| AWS Access Key | AKIA[0-9A-Z]{16} | 🔴 高 |
| AWS Secret Key | [0-9a-zA-Z/+]{40} | 🔴 高 |
| GitHub Token | ghp_[a-zA-Z0-9]{36} | 🔴 高 |
| GitHub OAuth | gho_[a-zA-Z0-9]{36} | 🔴 高 |
| 私钥文件 | -----BEGIN RSA PRIVATE KEY----- | 🔴 严重 |
| 密码 | password=xxx | 🟡 中 |
| API Key | api_key=xxx | 🟡 中 |
| 数据库连接串 | mongodb://user:pass@ | 🔴 高 |
Gitleaks 集成
Git Doctor 支持集成 Gitleaks 进行专业级检测:
bash
# 检查 Gitleaks 状态
Git Doctor: 检查 gitleaks 状态
# 如果未安装,会自动使用内置检测器处理建议
- 立即撤销 泄露的凭证
- 使用
git filter-branch或 BFG Repo-Cleaner 清理历史 - 考虑使用环境变量或密钥管理服务
- 安装 Pre-commit Hook 防止再次泄露
完整诊断
一键运行所有诊断分析。
运行方式:
- 命令面板:
Git Doctor: 运行完整诊断 - CLI:
git-doctor analyze
诊断报告
┌─────────────────────────────────────────┐
│ Git Doctor 诊断报告 │
├─────────────────────────────────────────┤
│ 📊 健康评分: 85/100 │
│ │
│ 📦 仓库体积: 正常 │
│ 📝 提交质量: 良好 (78%) │
│ 🌿 分支健康: 警告 (2 僵尸分支) │
│ 🔒 安全风险: 中 (2 项) │
│ │
│ ⚠️ 发现 4 个问题需要关注 │
└─────────────────────────────────────────┘健康评分计算
| 维度 | 权重 | 说明 |
|---|---|---|
| 仓库体积 | 20% | 大小、大文件数量 |
| 提交质量 | 30% | 规范率、频率 |
| 分支健康 | 20% | 僵尸分支、命名规范 |
| 安全风险 | 30% | 敏感信息数量和级别 |