git log 默认显示当前分支提交摘要,含哈希、作者、日期和信息;支持 -5、--oneline、--stat、-p 等参数;多分支用 git log branch1 branch2;查远程需先 git fetch;Windows 下排除分支用 git log branch1 "branch2"。

git log 最基本用法:看到最近几次提交
默认只显示当前分支的提交摘要,每条记录包含 commit hash、作者、日期和提交信息。不加任何参数时,git log 会阻塞终端(类似 less),按 q 退出。
- 想看前 5 条?用
git log -5 - 想一行一条、紧凑显示?用
git log --oneline - 如果看不到中文提交信息乱码,可能是终端编码问题,不是 Git 本身的问题
查看某次提交具体改了什么文件:git log --stat
--stat 会在每条提交后附上修改的文件列表和增删行数,适合快速判断这次提交影响范围。
- 配合
-p(即git log -p)能看到完整 diff,但输出很长,慎用 -
--stat不显示未暂存的改动,它只反映已提交的内容 - 如果某次提交后文件名显示为
old_name => new_name,说明发生了重命名,Git 自动检测到了
跨分支/多分支查看历史:git log branch1 branch2 --oneline
直接在 git log 后面跟多个分支名,Git 会列出这些分支共同可达的所有提交(即它们的并集),不是交集。
- 想看两个分支的分叉点之后各自独有的提交?用
git log branch1 ^branch2(注意^是排除) - Windows CMD 下
^是特殊字符,得写成git log branch1 "branch2"或换用 Git Bash - 图形化查看更直观?
git log --graph --all --oneline --decorate,但别在 CI 脚本里依赖这个输出格式
查不到刚 push 的远程提交?记得先 git fetch
git log 默认只查本地仓库的历史,远程分支(如 origin/main)的更新不会自动同步到本地引用。
-
git log origin/main查的是你本地缓存的origin/main指针,可能已经过期 - 必须先运行
git fetch,才能让origin/main指向远程最新状态 - 如果只想拉取特定远程分支,用
git fetch origin main,避免拉下整个仓库所有分支


















