git log 命令
git log
命令用于查看 Git 仓库的提交历史。它是理解项目演变过程的重要工具,可以帮助你追踪每一次提交、提交者、时间、提交说明等信息。
git log
的输出默认按时间倒序排列(最近的提交在最前),并支持各种选项自定义显示格式,例如显示某个文件的提交记录、以图形方式展示分支合并情况等。
命令语法
git log [选项] [分支名/提交哈希]
常用选项参数
-n <number>
:限制显示最近的 n 条提交记录。--oneline
:以简洁的一行格式显示提交信息。--graph
:以 ASCII 图形的方式显示分支和合并历史。--decorate
:在提交信息旁标注分支、标签等引用名。--author=<pattern>
:只显示指定作者的提交记录。--since=<date>
:只显示指定时间之后的提交。--until=<date>
:只显示指定时间之前的提交。--grep=<pattern>
:只显示包含指定模式的提交消息。--no-merges
:不显示合并提交。--pretty=<format>
:使用自定义的提交信息显示格式,如short
、full
、format:"..."
。-p
:显示每次提交中具体的 diff 内容(补丁)。--stat
:显示简略统计信息,包括修改的文件和行数。--follow
:用于跟踪文件改名后的提交历史(需指定文件路径)。--abbrev-commit
:使用短提交哈希值。
使用示例
查看默认的提交历史列表:
git log
以一行一条的简洁格式查看提交历史:
git log --oneline
限制显示最近的 5 条提交:
git log -n 5
以图形方式展示提交历史(适合查看分支合并情况):
git log --oneline --graph --decorate
查看某个作者的提交记录:
git log --author="Alice"
查看某个文件的提交历史(--
用来显式分隔选项与路径,防止路径被误认为是选项):
git log -- filename.txt
查看某个文件改名前后的完整提交历史:
git log --follow filename.txt
查看提交差异内容:
git log -p
查看提交统计信息(显示每次提交中哪些文件被修改了、增加/删除了多少行):
git log --stat
小贴士
-
如果你要查看某个文件的提交历史,建议在路径前加上
--
,例如:git log -- README.md
虽然你可以直接执行
git log README.md
,但加上--
可以防止 git 将README.md
误解析为参数或提交哈希,尤其在文件名与参数或引用名(如master
、--help
)冲突时非常重要。 -
--
是 git 中的通用分隔符,表示命令选项结束、路径参数开始。不只是git log
,其他命令如git diff
、git checkout
也推荐使用这个惯例。