log
使用log
❯ git log
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:55:50 2026 +0800
move test
commit 59ef81c4e3694ffb9410313bdd47212bc8c8fd35
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:49:14 2026 +0800
delete file
默认输出的提交记录以分页的方式展示,可以像 Linux 的 more 或 less 那样使用PageUp、PageDown 键进行翻页查看。
也可以指定返回最近的若干条提交记录:
❯ git log -2
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:55:50 2026 +0800
move test
commit 59ef81c4e3694ffb9410313bdd47212bc8c8fd35
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:49:14 2026 +0800
delete file
pretty
日志的显示内容可以进行定制,比如显示单行日志:
❯ git log --pretty=oneline
1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD) move test
59ef81c4e3694ffb9410313bdd47212bc8c8fd35 delete file
9d6f179c868cbaf41b65ea40edf07817a1e9c607 test
b31900fa8a5956ffc4215171baf9836bc576620b (origin/release/260126, release/260126) hello3
8dd7e82d0a145bc8e69112ff8ab768872e0da2d6 hello1
3c415dd6ac5eb532000bacc9809cfae1e622d5f4 commit 1
--pretty参数有多个值可选:
❯ git log --pretty=short -2
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
move test
commit 59ef81c4e3694ffb9410313bdd47212bc8c8fd35
Author: icexmoon <707488229@qq.com>
delete file
❯ git log --pretty=medium -2
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:55:50 2026 +0800
move test
commit 59ef81c4e3694ffb9410313bdd47212bc8c8fd35
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:49:14 2026 +0800
delete file
❯ git log --pretty=full -2
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
Commit: icexmoon <707488229@qq.com>
move test
commit 59ef81c4e3694ffb9410313bdd47212bc8c8fd35
Author: icexmoon <707488229@qq.com>
Commit: icexmoon <707488229@qq.com>
delete file
❯ git log --pretty=fuller -2
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
AuthorDate: Thu Jan 29 17:55:50 2026 +0800
Commit: icexmoon <707488229@qq.com>
CommitDate: Thu Jan 29 17:55:50 2026 +0800
move test
commit 59ef81c4e3694ffb9410313bdd47212bc8c8fd35
Author: icexmoon <707488229@qq.com>
AuthorDate: Thu Jan 29 17:49:14 2026 +0800
Commit: icexmoon <707488229@qq.com>
CommitDate: Thu Jan 29 17:49:14 2026 +0800
delete file
除了使用这些预定义的参数值,还可以自己定义输出格式:
❯ git log --pretty=format:"%h - %an, %ar : %s"
1e074de - icexmoon, 20 hours ago : move test
59ef81c - icexmoon, 20 hours ago : delete file
9d6f179 - icexmoon, 21 hours ago : test
b31900f - icexmoon, 4 days ago : hello3
8dd7e82 - icexmoon, 4 days ago : hello1
更多可选值可以查看帮助文档。
patch
有时候,我们需要查看提交记录对应的详细修改内容,比如删除了哪些代码或添加了哪些代码,可以使用-p或--patch参数:

stat
使用--stat参数可以查看日志中具体的统计数据,比如新增的是哪些文件,每个文件增加了多少行:
❯ git log -1 --stat
commit 51fc7ad00f1fba422f28d291fcb707be22b1f566 (HEAD -> main)
Author: icexmoon <707488229@qq.com>
Date: Fri Jan 30 14:43:08 2026 +0800
add user module
.../learngit/demo/controller/UserController.java | 27 ++++++++++++++++++++++
.../cn/icexmoon/learngit/demo/entity/User.java | 20 ++++++++++++++++
.../learngit/demo/service/UserService.java | 14 +++++++++++
.../demo/service/impl/UserServiceImpl.java | 20 ++++++++++++++++
筛选条件
since
有时候,我们希望对提交记录进行筛选,比如查看最近2周的提交记录:
❯ git log --since=2.weeks
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:55:50 2026 +0800
move test
commit 59ef81c4e3694ffb9410313bdd47212bc8c8fd35
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:49:14 2026 +0800
delete file
--since的值除了可以是一个时间段外,也可以是具体时间,比如:
❯ git log --since=2026-01-28
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:55:50 2026 +0800
move test
commit 59ef81c4e3694ffb9410313bdd47212bc8c8fd35
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:49:14 2026 +0800
delete file
author
通常,我们会对提交人进行筛选:
❯ git log --author icexmoon
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:55:50 2026 +0800
move test
commit 59ef81c4e3694ffb9410313bdd47212bc8c8fd35
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:49:14 2026 +0800
delete file
grep
对提交时的备注进行筛选也很常见:
❯ git log --grep test
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:55:50 2026 +0800
move test
commit 9d6f179c868cbaf41b65ea40edf07817a1e9c607
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:34:19 2026 +0800
test
all-match
当同时使用多个筛选条件时,默认时 or 的关系:
❯ git log --author icexmoon --grep test
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:55:50 2026 +0800
move test
commit 9d6f179c868cbaf41b65ea40edf07817a1e9c607
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:34:19 2026 +0800
test
如果要让筛选结果满足所有指定条件(AND),需要使用--all-match参数:
❯ git log --author icexmoon --grep test --all-match
commit 1e074deece41d1423ea615599e125fecbc3df421 (HEAD -> main, origin/main, origin/HEAD)
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:55:50 2026 +0800
move test
commit 9d6f179c868cbaf41b65ea40edf07817a1e9c607
Author: icexmoon <707488229@qq.com>
Date: Thu Jan 29 17:34:19 2026 +0800
test
The End.
参考资料

文章评论