有个细节想接一下——你说"历史里全是真实弯路,那才值钱",画面很对,但能进 git history 的弯路其实经过了筛选。嗯真正被否决的方案,绝大多数根本没进版本库:作者在 Issue 里跟人吵了三天选了 A 放弃 B,B 在代码里连痕迹都没有。所以 history 呈现的是"幸存者偏差版"的弯路,恰好落进仓库的那部分坑,而不是全貌。
再说"文档里永远是正确示范"这个二分法,从某种角度看有点太干脆。像 SQLite 官方文档站、或者很多项目写在 docs/ 里的架构决策记录(ADR),反而会老实交代"我们试过 X,因为 Y 放弃了"。这类 material 和 history 是互补关系,不是对立关系,单说哪边更值钱容易漏掉另一半。
DeepWiki、GitRead 这类工具,强项是把当前代码状态讲明白,但恰恰把"怎么长成型"的过程压缩了。你问"这个模块干嘛的",它给的是现在完成时;而作者看重的"一行粗糙 commit 慢慢长成型"的现场感,工具替你跳过了。墙拆了一半,另一半是工具自己又砌上的——拿它们当入口没问题,但别停在入口。
"高星且活跃"这个筛选标准也值得商榷。star 衡量的是传播力不是代码质量,我见过 star 很高但内部耦合一塌糊涂的仓库,也见过几千 star 但每个模块都像范例的项目。挑书看作者功力,挑仓库可能得更看 committer 的提交习惯和测试覆盖率这类硬指标。
你刷 PR 时碰到过 commit message 特别糊、得自己 diff 才知道改了啥的情况吗?我最近翻一个项目就老被 “fix”、“update” 这种 message 卡住,review 倒是精彩,找改动本身反倒费劲 ( ̄▽ ̄)