1. 看里程碑版本
# 先看标签历史,找重要版本
git tag --sort=-version:refname | head -20
# 输出可能是这样:
# 13.0.0
# 12.1.0
# 12.0.0
# 11.0.0
# ...
# 0.1.0
# 重点看这些版本:
git checkout 0.1.0 # 最初版本 - 理解核心思想
git checkout 0.5.0 # 早期稳定版 - 基本功能完整
git checkout 1.0.0 # 第一个大版本 - 设计成型
git checkout 5.0.0 # 中期版本 - 性能优化
git checkout 13.0.0 # 最新版本 - 对比演进
2. 看关键提交
# 搜索重要的设计决策提交
git log --oneline --grep="refactor"
git log --oneline --grep="performance"
git log --oneline --grep="rewrite"
git log --oneline --author="BurntSushi" --grep="initial"
# 看文件变化最大的提交
git log --oneline --stat | grep -A5 -B1 "files changed.*insertions.*deletions" | head -20
3. 按功能模块学习
# 看特定文件的演进历史
git log --oneline src/main.rs | tail -10 # main 函数的演进
git log --oneline src/search.rs | tail -5 # 搜索逻辑的演进
git log --oneline Cargo.toml | tail -5 # 依赖的演进
# 看某个功能的引入
git log --oneline --grep="SIMD"
git log --oneline --grep="regex"
git log --oneline --grep="parallel"
推荐的学习路径
第一阶段:理解核心设计
git checkout 0.1.0
# 看这个版本的代码结构,理解最基本的实现
# 代码量小,容易理解核心思路
git checkout 0.10.0 # 跳跃式地看几个早期版本
git checkout 1.0.0
第二阶段:关键演进点
# 搜索重要的提交信息
git log --oneline --grep="rewrite" | head -5
git log --oneline --grep="performance" | head -5
# 手动选择几个关键提交看
git show <重要提交哈希>
第三阶段:对比学习
git checkout main
# 对比最新版本和早期版本的差异
git diff 0.1.0..main src/main.rs