接手新代码库时先跑这 5 条 git 命令
参考文献链接: https://piechowski.io/post/git-commands-before-reading-code/
1. 找过去一年改动最多的 20 个文件
1 | git log --format=format: --name-only --since="1 year ago" \ |
它回答的问题:
哪些文件是这个项目里最“忙”的地方?
例如输出:
1 | 342 src/services/payment.ts |
说明:
-
payment.ts一年被修改 342 次 -
它可能是核心业务代码
-
也可能是历史包袱最重的地方
为什么有价值?
高修改频率(code churn)通常意味着:
-
业务复杂
-
需求经常变化
-
模块边界设计不好
-
修改一个地方容易影响很多地方
尤其危险的是:
一个文件修改很多次,但是没人敢重构。
这种文件往往就是“雷区”。
例如:
1 | src/utils/index.ts |
你进入项目后,应该优先理解它。
2. 看谁提交最多
1 | git shortlog -sn --no-merges |
例如:
1 | 245 Alice |
它回答:
这个项目的知识分布是什么?
假设:
1 | Alice 80% |
意味着:
-
Alice 可能掌握大量隐含知识
-
如果 Alice 离职,项目风险很高
这叫:
Bus Factor(单点知识风险)
也就是:
“如果这个人被公交车撞了,项目还能不能继续?”
当然不能简单认为:
1 | 提交最多 = 最厉害 |
因为:
-
有人提交习惯拆得很细
-
有人一次提交几千行
-
自动生成提交可能污染统计
它只是一个信号。
3. 找 Bug 集中的文件
1 | git log -i -E --grep="fix|bug|broken" \ |
它回答:
哪些地方经常出问题?
例如:
1 | 89 src/payment/payment.ts |
说明:
这些地方经常出现:
1 | fix payment bug |
结合第一个命令:
如果发现:
1 | 修改次数: |
那么:
这是重点关注区域。
它可能:
-
业务核心
-
架构有问题
-
测试不足
4. 看项目提交活跃度趋势
1 | git log --format='%ad' --date=format:'%Y-%m' \ |
例如:
1 | 2026-01 120 |
它回答:
这个项目现在还有生命力吗?
可能情况:
正常:
1 | 每个月稳定几十次提交 |
说明:
-
持续维护
-
团队稳定
危险:
1 | 之前每月 200 次 |
可能:
-
项目进入维护期
-
团队人员减少
-
项目没人负责
注意:
提交数量 ≠ 项目质量。
例如:
一个成熟项目可能:
1 | 提交少 |
所以它只是观察信号。
5. 查看回滚和紧急修复
1 | git log --oneline --since="1 year ago" \ |
它回答:
团队是不是经常线上救火?
例如:
1 | a12bc3 revert payment change |
说明:
发布流程可能存在问题。
可能原因:
-
测试不足
-
CI/CD 不完善
-
staging 环境缺失
-
发布流程太冒险
但反过来也可能:
一个成熟团队:
1 | 发现问题 |
这其实是能力表现。
关键看频率。
- 标题: 接手新代码库时先跑这 5 条 git 命令
- 作者: 三葉Leaves
- 创建于 : 2026-08-05 00:00:00
- 更新于 : 2026-09-20 23:26:04
- 链接: https://blog.oksanye.com/061e1ffee4fa/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论