Files
Knowledge/1 使用/git/git log.md
T

2.0 KiB
Raw Blame History

要查看 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>

这些命令足够覆盖日常查看文件历史的需求。