Git 中如何只查看某个用户的提交记录?
Git 查看某人提交:git log --author="名字" 按作者过滤,支持模糊匹配;配合 --oneline、--stat、--since 进一步筛选。本文介绍常用组合。
用 --author 参数:git log --author="John"。名字支持模糊匹配(正则),配合 --oneline、--stat、--since 可以组合出各种视角。
基本用法
# 按作者名过滤
git log --author="John Doe"
# 按邮箱过滤(更精确,同名用户可区分)
git log --author="<john@example.com>" --fixed-strings
常用组合
# 简洁单行显示
git log --author="John" --oneline
# 带每次提交的文件变更统计
git log --author="John" --stat
# 按提交者时间筛选最近两周,不是作者时间
git log --author="John" --since="2 weeks ago"
# 统计提交次数
git log --author="John" --oneline | wc -l
统计所有人的提交数
git shortlog -sn HEAD
按提交数从高到低列出HEAD可达历史中的贡献者;需所有本地引用时使用 --all,不会自动获取服务器的新提交,提交数也不是贡献质量。
常见问题(FAQ)
Q:--author 区分大小写吗?
A:默认是正则匹配,区分大小写;加 -i 忽略大小写:git log -i --author="john"。
Q:多个作者怎么查?
A:git log --author="John\|Jane"(正则 OR),或重复 --author 参数形成 OR;无需虚构具体引入版本。
Q:author 和 committer 有什么区别?
A:author 是写代码的人,committer 是执行提交的人(rebase/cherry-pick 时两者会不同)。--author 按 author 过滤,--committer 按 committer 过滤。