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