git-rev-list
按逆时间顺序列出提交对象。
概要
bash
'git rev-list' [<options>] <commit>... [--] [<path>...]描述
列出通过跟踪给定提交的 parent 链接可达的提交,但排除前面带有 '{caret}' 的提交可达的提交。默认按逆时间顺序输出。
您可以将其视为集合操作。从命令行上给出的任何提交可达的提交形成一个集合,然后从前置 '{caret}' 的提交可达的提交从该集合中减去。剩余的提交就是命令输出的内容。
特殊符号 <commit1>..<commit2> 可用作 ^<commit1> <commit2> 的简写。另一个特殊符号 <commit1>...<commit2> 对合并很有用,结果提交集是两个操作数的对称差异。
rev-list 是一个重要的 Git 命令,因为它提供了构建和遍历提交祖先图的能力。
选项
提交限制
-<number>, -n <number>, --max-count=<number>:将输出限制为 <number> 个提交。--skip=<number>:在开始显示提交输出之前跳过 <number> 个提交。--since=<date>, --after=<date>:显示比 <date> 更新的提交。--since-as-filter=<date>:显示所有比 <date> 更新的提交。--until=<date>, --before=<date>:显示比 <date> 更旧的提交。--author=<pattern>、--committer=<pattern>:将提交输出限制为作者/提交者头行匹配 <pattern> 正则表达式的提交。--grep-reflog=<pattern>:将提交输出限制为 reflog 条目匹配 <pattern> 的提交。--grep=<pattern>:将提交输出限制为日志消息匹配 <pattern> 的提交。--all-match:将提交输出限制为匹配所有给定--grep的提交。--invert-grep:将提交输出限制为日志消息不匹配的提交。-i, --regexp-ignore-case:匹配正则表达式限制模式时不区分大小写。--basic-regexp:将限制模式视为基本正则表达式(默认)。-E, --extended-regexp:将限制模式视为扩展正则表达式。-F, --fixed-strings:将限制模式视为固定字符串。-P, --perl-regexp:将限制模式视为 Perl 兼容正则表达式。--remove-empty:当给定路径从树中消失时停止。--merges:仅打印合并提交。--no-merges:不打印具有多个父提交的提交。--min-parents=<number>、--max-parents=<number>:显示至少(或最多)具有那么多父提交的提交。--first-parent:在发现合并提交时,仅跟踪第一个父提交。--exclude-first-parent-only:在发现要排除的提交时,仅跟踪第一个父提交。--maximal-only:将输出提交限制为不可从修订范围中任何其他提交可达的提交。--not:反转所有后续修订说明符的 '{caret}' 前缀的含义。--all:假装refs/中的所有引用以及HEAD都列在命令行上。--branches[=<pattern>]、--tags[=<pattern>]、--remotes[=<pattern>]:假装所有引用都列在命令行上。--glob=<glob-pattern>:假装所有匹配 shell glob 的引用都列在命令行上。--exclude=<glob-pattern>:不包含匹配的引用。--exclude-hidden=(fetch|receive|uploadpack):不包含会被隐藏的引用。--reflog:假装 reflog 中提到的所有对象都列在命令行上。--alternate-refs:假装所有备用仓库的引用提示都列在命令行上。--single-worktree:强制仅检查当前工作树。--ignore-missing:在输入中看到无效对象名称时,假装未给出该输入。--stdin:除了从命令行获取参数外,还从标准输入读取。--quiet:不向标准输出打印任何内容。--disk-usage:打印所选提交或对象使用的磁盘存储字节总和。--cherry-mark:用=标记等效提交,用+标记非等效提交。--cherry-pick:省略引入与另一侧相同更改的提交。--left-only、--right-only:仅列出对称差异相应一侧的提交。--cherry:--right-only --cherry-mark --no-merges的同义词。-g, --walk-reflogs:遍历 reflog 条目而不是提交祖先链。--merge:显示在HEAD...<other>范围内接触冲突路径的提交。--boundary:输出排除的边界提交。
历史简化
<paths>:选择修改给定路径的提交。--simplify-by-decoration:选择被某些分支或标签引用的提交。--show-pulls:包含默认模式中的所有提交,还包括不是 TREESAME 到第一个父提交但 TREESAME 到后续父提交的合并提交。--full-history:与默认模式相同,但不修剪某些历史。--dense:仅显示选定的提交。--sparse:显示简化历史中的所有提交。--simplify-merges:从结果历史中删除一些不必要的合并。--ancestry-path[=<commit>]:将显示的提交限制为 <commit> 的祖先或后代。
提交排序
--date-order:按提交时间戳顺序显示。--author-date-order:按作者时间戳顺序显示。--topo-order:避免显示来自多个历史行的混合提交。--reverse:以相反顺序输出选定的提交。
提交格式化
--pretty[=<format>]、--format=<format>:以给定格式漂亮打印提交日志的内容。--abbrev-commit:显示唯一命名对象的前缀。--no-abbrev-commit:显示完整的 40 字节十六进制提交对象名称。--oneline:--pretty=oneline --abbrev-commit的简写。--encoding=<encoding>:告诉命令以用户首选的编码重新编码提交日志消息。--expand-tabs=<n>:在日志消息中执行制表符扩展。--notes[=<ref>]:显示注释提交的笔记。--no-notes:不显示笔记。--show-signature:通过将签名传递给gpg --verify来检查签名提交对象的有效性。--relative-date:--date=relative的同义词。--date=<format>:设置日期格式。
Git
git 套件的一部分
