如何用git rev-list在全分支中按作者筛选提交?
Git Rev-List:全仓库范围筛选特定作者提交
直接通过git rev-list的--author参数配合--all就能满足你的需求:--all让Git遍历仓库所有分支、标签及其他引用的提交历史,--author则过滤出目标作者的提交,既覆盖全仓库范围,又只返回指定作者的内容(底层是遍历过程中直接筛选,无需先遍历所有提交再过滤,效率更高)。
基础命令示例
- 按作者姓名模糊匹配(支持部分字符,比如名字的一部分):
git rev-list --author="Jane Doe" --all - 按作者邮箱精确匹配(避免姓名重复导致的误匹配):
git rev-list --author="jane@example.com" --all
实用扩展
- 显示简洁的提交信息(哈希+简短描述):
git rev-list --author="Jane Doe" --all --oneline - 限制仅输出最近10条提交:
git rev-list --author="Jane Doe" --all -n 10 - 排除特定作者的提交(比如筛选Jane的提交但排除John的):
git rev-list --author="Jane Doe" --not --author="John Smith" --all
关键说明
别误解--all的作用:它不是让Git返回所有提交,而是指定遍历的范围是仓库内所有可达的引用(包括本地分支、远程分支、标签等)。配合--author后,Git只会在这个全仓库范围内筛选出目标作者的提交,完全符合你“不搜索所有提交、仅找特定作者且覆盖全仓库”的要求。
内容的提问来源于stack exchange,提问作者LetMeSOThat4U
相关产品推荐
相关产品推荐

