| Git 命令 | 诊断目的与解释 |
|---|---|
git log --format=format: --name-only --since="1 year ago" | sort | uniq -c | sort -nr | head -20 |
识别高频变动文件 (Churn): 找出修改最频繁的文件。通常这些文件逻辑最复杂,是潜在的重构目标。 |
git shortlog -sn --no-merges |
评估公交系数 (Bus Factor): 按提交数对贡献者排名。用于判断项目是否过度依赖某个人。 |
git log -i -E --grep="fix|bug|broken" --name-only --format='' | sort | uniq -c | sort -nr | head -20 |
寻找 Bug 聚集地 (Bug Clusters): 统计提及修复 Bug 最多的文件。这些是代码库中最脆弱、最容易出问题的部分。 |
git log --format='%ad' --date=format:'%Y-%m' | sort | uniq -c |
监测项目节奏 (Velocity): 按月统计提交数。用于观察项目的生命力趋势(是活跃、稳定还是正在走向枯竭)。 |
git log --oneline --since="1 year ago" | grep -iE 'revert|hotfix|emergency|rollback' |
统计救火频率 (Firefighting): 搜索回滚和紧急修复。频率过高说明测试流程不完善或代码质量不可靠。 |
💡 使用提示:
--name-only 的命令时,建议结合 grep -v 过滤掉不需要分析的目录(如 node_modules、target 或文档目录)。renameLimit 警告,可以在命令中加入 --no-renames 以提高执行速度并消除警告。