如何查看文件的 Git 变更历史
查看文件变更历史:git log --follow -- <文件路径>(--follow 跨重命名追踪);加 -p 看每次的具体改动,--stat 看统计。git blame 文件 看每一行最后是谁改的。
git log --follow -- 文件路径:列出从所选本地引用可达、按历史简化规则显示的文件变更提交,--follow 通过重命名相似性启发式继续追踪,不保证完整跨越所有拆分/合并历史。加 -p 看每次提交的具体 diff,加 --stat 只看改动统计。
常用组合
git log --follow --oneline -- src/app.js # 简洁历史
git log --follow -p -- src/app.js # 每次的完整改动
git log --follow --stat -- src/app.js # 统计视图
git log --follow --since="3 months ago" -- src/app.js # 时间过滤
每行级别的追溯
git blame src/app.js # 当前行的归属线索,不是已删除行/全部编辑历史
git blame -L 50,80 src/app.js # 只看 50-80 行
IDE 与网页
- VS Code:GitLens 的文件历史视图;
- JetBrains:右键文件 → Git → Show History;
- GitHub:文件页面的 History 按钮、Blame 视图。
常见问题(FAQ)
Q:--follow 有什么局限?
一次只能跟一个文件路径;复杂的"拆分文件"场景跟踪可能断。断了就用 git log --all --full-history -- 旧路径 手动接力。
Q:文件被删了还能看历史吗?
能:git log --diff-filter=D -- 路径 找到删除提交,可查看本地仍可达且已获取的历史;浅克隆可能需补取提交,--all也只遍历本地已知引用。
Q:想看两个版本间这个文件变了什么?
git diff A B -- 路径。