logo科技微讯

五条代码考古的 Git 命令

作者:科技微讯
日期:2026-04-10
📝 笔记
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_modulestarget 或文档目录)。
  • 处理警告: 如果遇到 renameLimit 警告,可以在命令中加入 --no-renames 以提高执行速度并消除警告。
  • 参考文章:The Git Commands I Run Before Reading Any Code