>> >> >> Reference << << << <<<<<<Ref>>>>>>
rev-list
Modified: 2025-12-31 | Author:ljf12825

rev-list

git rev-list是Git中最核心、最底层的对象遍历命令之一。它的名字可以理解为“revision list”(版本列表),其主要功能就是按照给定的顺序和规则,列出一系列提交的SHA-1哈希值

是什么

简单来说,git rev-list是一个“提交列表生成器”。给它一个或多个起点(有时也包括终点),它就能根据提交历史的有向无环图,遍历并列出所有符合条件的提交

关键点

基本用法

最基本的用法是指定一个起点,它会列出所有可以从该起点回溯到达的提交

# 列出 master 分支上的所有提交
# 顺序通常是反向时间顺序,即最新的提交先列出
git rev-list master 

# 列出某个特定提交及其所有祖先
git rev-list <commit-hash>

常见选项和场景

rev-list的强大之处在于其丰富的选项,它们可以组合出非常复杂的查询

指定范围

这是rev-list最核心的功能之一,用于比较两个分支或提交

# 查看在 feature 分支上但不在 main 分支上的提交
git rev-list main..feature 

这在git pushgit log时非常有用。git push origin main..feature就是推送这些提交

# 查看 feature 和 main 分支独有的提交(排除它们的共同祖先)
git rev-list main...feature 

限制输出数量

# 获取最近的5个提交
git rev-list main -5

过滤和筛选

# 列出过去一周内在 main 分支上的提交
git rev-list main --since="1 week age"
# 查找提交信息中包含 "bugfix" 的提交
git rev-list main --grep="bugfix"

输出格式化

虽然主要输出SHA-1,但它也提供了一些基本格式

# 像 git log --oneline 一样输出
git rev-list main --pretty=online 

高级和内部使用

# 列出分支main引用的所有对象
git rev-list --objects main 
git rev-list --count main..feature 
# 查看 main 分支的主线历史
git rev-list --first-parent main