2.0 KiB
2.0 KiB
要查看 Git 仓库中指定文件的所有修改记录(包括谁、何时、改了什么),最直接的方法就是使用 git log 配合文件名。
📜 基本命令:显示所有影响该文件的提交
git log -- <文件路径>
示例:
git log -- src/main.py
这样会按时间倒序列出所有修改过 src/main.py 的提交。
🔍 查看每次修改的具体内容(diff)
加上 -p 或 --patch 就能看到每次提交中该文件具体的增删行:
git log -p -- src/main.py
🚶 跟踪文件重命名/移动
如果文件曾被重命名或移动过,默认 git log 不会自动跟踪。加上 --follow 即可:
git log --follow -p -- src/main.py
注意:
--follow在某些 Git 版本中不能与--reverse等参数同时使用,但基本场景够用。
📅 更紧凑的显示(一行摘要 + 统计)
git log --oneline --stat -- src/main.py
--oneline:每个提交一行--stat:显示文件修改的统计(增加/删除行数)
🎯 只查看某个时间范围或作者
# 最近 5 次修改
git log -5 -- src/main.py
# 某个作者
git log --author="张三" -- src/main.py
# 某个日期之后
git log --since="2024-01-01" -- src/main.py
💡 补充:逐行查看文件每行的最后修改
如果你想知道文件每一行最后一次是谁改的,用 git blame:
git blame <文件路径>
这会输出每行的内容、提交哈希、作者、时间。如果你想忽略空白或移动过的行,可以用 git blame -w -C。
总结
| 需求 | 命令 |
|---|---|
| 只看提交列表 | git log -- <file> |
| 看每次改了什么 | git log -p -- <file> |
| 跟踪重命名 | git log --follow -p -- <file> |
| 统计改了多少行 | git log --stat -- <file> |
| 查看每行最后修改人 | git blame <file> |
这些命令足够覆盖日常查看文件历史的需求。