这是 git-rev-list 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
git-rev-list - 按时间倒序列出提交对象
概要
混帐 版本列表 [ --max-count= ]
[--跳过= ]
[ --max-age= ]
[ --min-age= ]
[--稀疏]
[--合并]
[--不合并]
[ --min-parents= ]
[ --没有最低父母 ]
[ --max-parents= ]
[ --无最大父母 ]
[--第一父母]
[--删除-空]
[--完整历史]
[ - 不是 ]
[ - 全部 ]
[ -- 分支[= ] ]
[ --tags[= ] ]
[ --remotes[= ] ]
[ --glob= ]
[--忽略缺失]
[--标准输入]
[ - 安静的 ]
[ --topo 顺序 ]
[ - 父母 ]
[--时间戳]
[ - 左右 ]
[--仅左]
[--仅右]
[--樱桃标记]
[--樱桃挑选]
[--编码= ]
[ --(作者|提交者|grep)= ]
[ --regexp-ignore-case | -一世 ]
[ --extended-regexp | -E]
[ --固定字符串 | -F ]
[ --日期= ]
[ [ --对象 | --objects-edge | --objects-edge-aggressive ]
[--解压]]
[--漂亮| --标题]
[--二等分]
[ --bisect-vars ]
[ --bisect-all ]
[--合并]
[ - 逆转 ]
[ --walk-reflogs ]
[--禁止步行] [--步行]
[ - 数数 ]
[--使用位图索引]
... [-- ...]
商品描述
通过遵循给定提交的父链接列出可访问的提交,
但排除可从带有 ^ 在他们面前。
默认情况下,输出按逆时间顺序给出。
您可以将其视为集合操作。 在命令行上给出的提交形成一组
提交可从其中任何一个访问,然后提交可从任何一个访问
给予的 ^ 前面是从那个集合中减去的。 剩下的提交是什么
出现在命令的输出中。 可以使用各种其他选项和路径参数
进一步限制结果。
因此,以下命令:
$ git rev-list foo bar ^baz
意思是“列出所有可以从 FOO or 酒吧,但不是来自 巴兹".
一个特殊的符号“.." 可以用作 "^' 的简写'
"。例如,以下任一项可以互换使用:
$ git rev-list origin..HEAD
$ git rev-list HEAD ^origin
另一个特殊符号是“..." 这对合并很有用。
提交的结果集是两个操作数之间的对称差异。 这
以下两个命令是等效的:
$ git rev-list AB --not $(git merge-base --all AB)
$ git rev-list A...B
版本列表 是一个非常重要的 Git 命令,因为它提供了构建和
遍历提交祖先图。 出于这个原因,它有很多不同的选择
使其能够被不同的命令使用 混帐 二等分 和 混帐 改装.
配置
承诺 限制
除了指定应该使用特殊符号列出的提交范围之外
在描述中解释过,可以应用额外的提交限制。
使用更多选项通常会进一步限制输出(例如 --since= 限制为
提交比, 并与 --grep= 一起使用对提交的进一步限制
其日志消息有一行匹配), 除非另有说明。
请注意,这些是在提交排序和格式选项之前应用的,例如
- 逆转。
—— , -n , --max-count=
限制提交到输出的数量。
--跳过=
跳至 数 在开始显示提交输出之前提交。
--因为= , --after=
显示比特定日期更近的提交。
--直到= , --before=
显示早于特定日期的提交。
--max-age= , --min-age=
将提交输出限制在指定的时间范围内。
--作者= , --提交者=
将提交输出限制为作者/提交者标题行与
指定的模式(正则表达式)。 有多个 --author= , 提交
选择其作者与任何给定模式匹配的人(对于多个
--提交者= )。
--grep-reflog=
将提交输出限制为具有与指定模式匹配的 reflog 条目的提交输出
(正则表达式)。 使用多个 --grep-reflog,提交其 reflog 消息
匹配任何给定的模式被选择。 使用此选项是错误的,除非
--walk-reflogs 正在使用中。
--grep=
将提交输出限制为具有与指定模式匹配的日志消息的提交输出
(正则表达式)。 不止一个 --grep= , 提交其消息
匹配任何给定的模式被选择(但请参阅--all-match)。
--全匹配
将提交输出限制为与所有给定的 --grep 匹配的输出,而不是那些匹配的输出
至少匹配一个。
--反转-grep
将提交输出限制为日志消息与模式不匹配的提交输出
用 --grep= 指定.
-i, --regexp-忽略大小写
匹配正则表达式限制模式而不考虑字母大小写。
--基本正则表达式
将限制模式视为基本的正则表达式; 这是默认设置。
-E,--扩展正则表达式
考虑将限制模式扩展为正则表达式而不是
默认的基本正则表达式。
-F,--固定字符串
将限制模式视为固定字符串(不要将模式解释为
正则表达式)。
--perl-正则表达式
将限制模式视为与 Perl 兼容的正则表达式。 需要
要编译的 libpcre。
--删除空
当给定的路径从树中消失时停止。
--合并
仅打印合并提交。 这与 --min-parents=2 完全相同。
--不合并
不要打印具有多个父级的提交。 这与
--max-parents=1。
--min-父母= , --max-parents= , --no-min-parents, --no-max-parents
仅显示至少(或最多)有许多父级提交的提交。 在
特别是,--max-parents=1 与--no-merges 相同,--min-parents=2 与
——合并。 --max-parents=0 给出所有根提交,--min-parents=3 给出所有八达通
合并。
--no-min-parents 和 --no-max-parents 再次重置这些限制(无限制)。
等效形式是 --min-parents=0 (任何提交都有 0 个或多个父项)和
--max-parents=-1(负数表示没有上限)。
--第一父母
看到合并提交后,只关注第一个父提交。 这个选项可以给
查看特定主题分支的演变时更好的概览,因为
合并到一个主题分支往往只是调整到更新上游
不时,此选项允许您忽略引入的单个提交
通过这样的合并到你的历史。 不能与 --bisect 结合使用。
- 不是
颠倒意思 ^ 所有后续修订的前缀(或缺少前缀)
说明符,直到下一个 --not。
- 全部
假设 refs/ 中的所有 refs 都在命令行中列出 .
--分支[= ]
假设 refs/heads 中的所有 refs 都在命令行中列出 .
If 给定,将分支限制为匹配给定 shell glob 的分支。 如果模式
缺乏 ?, *或 [, /* 最后是暗示。
--标签[= ]
假设所有 refs/tags 中的 refs 都在命令行中列出 。 如果
给定,将标签限制为与给定 shell glob 匹配的标签。 如果缺少图案 ?,
*或 [, /* 最后是暗示。
--遥控器[= ]
假装 refs/remotes 中的所有 refs 都列在命令行中 .
If 给定,将远程跟踪分支限制为与给定 shell 匹配的分支
球。 如果缺少图案 ?, *或 [, /* 最后是暗示。
--glob=
假装所有的 refs 都匹配 shell glob 列在上面
命令行为 。 领导 参考文献/, 如果丢失,将自动添加。 如果
模式缺乏 ?, *或 [, /* 最后是暗示。
--排除=
不包括 refs 匹配 下一个 --all, --branches, --tags,
--remotes 或 --glob 否则会考虑。 此选项的重复累积
排除模式直到下一个 --all、--branches、--tags、--remotes 或 --glob
选项(其他选项或参数不会清除累积模式)。
给出的模式不应以 refs/heads、refs/tags 或 refs/remotes 开头,当
分别应用于 --branches、--tags 或 --remotes,并且它们必须以
refs/ 应用于--glob 或--all 时。 如果一个尾随 /* 是有意的,必须给予
明确地。
--reflog
假设 reflogs 提到的所有对象都在命令行中列出
.
--忽略缺失
在输入中看到无效的对象名称时,假装错误的输入不是
给定的。
--标准输入
除了 在命令行上列出,从标准中读取它们
输入。 如果一个 -- 看到分隔符,停止读取提交并开始读取路径
限制结果。
- 安静的
不要将任何内容打印到标准输出。 这种形式主要是为了允许
调用者测试退出状态以查看对象范围是否完全连接(或
不是)。 它比将 stdout 重定向到 /dev/null 更快,因为输出不必
被格式化。
--樱桃标记
像--cherry-pick(见下文)但用= 标记等效提交而不是省略
它们,以及带有 + 的不等价的。
--樱桃挑选
省略任何引入与“另一端”的另一个提交相同的更改的提交
当提交集受限于对称差异时。
例如,如果您有两个分支,A 和 B,列出所有提交的常用方法
只有一侧是 --left-right (请参阅下面的说明中的示例
--left-right 选项)。 但是,它显示了精心挑选的提交
来自另一个分支(例如,“3rd on b”可能是从分支 A 中挑选出来的)。
使用此选项,此类提交对将从输出中排除。
--仅左,--仅右
列表仅在对称范围的相应侧提交,即仅提交那些
将被标记为 < resp。 > 通过 --left-right。
例如, --cherry-pick --right-only A...B 省略了 B 中的那些提交
A or 补丁等效于 A 中的提交。换句话说,这列出了 + 提交
来自 git cherry A B。更准确地说,--cherry-pick --right-only --no-merges 给出了
确切名单。
- 樱桃
--right-only --cherry-mark --no-merges 的同义词; 有助于将输出限制为
我们这边的提交并标记那些已应用于另一端的提交
使用 git log --cherry upstream...mybranch 分叉历史,类似于 gitcherry
上游 mybranch。
-g, --walk-reflogs
不是走提交祖先链,而是走最近的 reflog 条目
一到老的。 使用此选项时,您不能指定要排除的提交
(那是, ^提交, 提交1..提交2及 提交1...提交2 不能使用符号)。
使用 --pretty 格式而不是 oneline(出于显而易见的原因),这会导致输出
从 reflog 中获取两行额外的信息。 默认情况下, 提交@{Nth}
输出中使用符号。 当起始提交被指定为 提交@{现在},
输出也使用 提交@{时间戳} 符号代替。 在 --pretty=oneline 下,
提交消息在同一行上以该信息为前缀。 这个选项不能
与--reverse 结合使用。 也可以看看 git reflog(1)。
- 合并
合并失败后,显示存在冲突且不存在的文件的引用
所有的头要合并。
- 边界
输出排除边界提交。 边界提交以 - 为前缀。
--使用位图索引
尝试使用包位图索引(如果有)加快遍历速度。 笔记
当用 --objects 遍历时,树和 blob 不会有它们的关联
路径打印。
发展历程 简单化
有时你只对部分历史感兴趣,例如提交
修改特定. 但是有两个部分 发展历程 简单化,一个部分
是选择提交,另一个是如何去做,因为有多种策略可以
简化历史。
以下选项选择要显示的提交:
提交修改给定的被选中。
--简化装饰
选择由某个分支或标签引用的提交。
请注意,可以显示额外的提交以提供有意义的历史记录。
以下选项会影响执行简化的方式:
默认模式
将历史简化为解释树最终状态的最简单历史。
最简单,因为如果最终结果相同,它会修剪一些侧枝(即
合并内容相同的分支)
--全历史
与默认模式相同,但不修剪一些历史记录。
- 稠密
只显示选定的提交,加上一些具有有意义的历史记录。
- 疏
显示简化历史记录中的所有提交。
--简化合并
--full-history 的附加选项,用于从结果中删除一些不必要的合并
历史,因为没有选定的提交有助于此合并。
--祖先路径
当给定要显示的提交范围时(例如 提交1..提交2 or 提交2 ^提交1),
只显示直接存在于祖先链上的提交 提交1 和
提交2, 即提交既是 提交1,和祖先 提交2.
更详细的解释如下。
假设您将 foo 指定为. 我们将调用修改 foo 的提交!TREESAME,
其余的 TREESAME。 (在为 foo 过滤的差异中,它们看起来不同且相等,
分别。)
在下文中,我们将始终参考相同的示例历史来说明
简化设置之间的差异。 我们假设您正在过滤文件
foo 在这个提交图中:
.-A---M---N---O---P---Q
// / / / /
IBCDEY
\/////
`-------------' X
历史的水平线 A---Q 被认为是每个合并的第一个父级。 这
提交是:
· I 是初始提交,其中 foo 存在,内容为“asdf”,还有一个文件 quux
与内容“quux”一起存在。 初始提交被比作一棵空树,所以我是
!树。
· 在 A 中,foo 只包含“foo”。
· B 包含与 A 相同的变化。它的合并 M 是微不足道的,因此对所有人来说都是 TREESAME
父母。
· C 不改变 foo,但它的合并 N 将它改变为“foobar”,所以它不是 TREESAME
给任何家长。
· D 将 foo 设置为“baz”。 它的合并 O 将 N 和 D 的字符串组合成“foobarbaz”;
即,它对任何父母都不是 TREESAME。
· E 将quux 更改为“xyzzy”,其合并P 将字符串组合为“quux xyzzy”。 P是
TREESAME 到 O,但不是 E。
· X 是一个独立的根提交,添加了一个新的文件端,Y 修改了它。 Y是
TREESAME 到 X。它的合并 Q 添加到 P 边,Q 是 TREESAME 到 P,但不是 Y。
rev-list 向后遍历历史记录,根据是否包含或排除提交
使用 --full-history 和/或父重写(通过 --parents 或 --children)。 这
以下设置可用。
默认模式
如果对任何父级都不是 TREESAME,则包括提交(尽管这可以是
已更改,请参阅下面的 --sparse)。 如果提交是合并,并且对一个来说是 TREESAME
父母,只跟随那个父母。 (即使有多个 TREESAME 父母,也遵循
只有其中之一。)否则,跟随所有父母。
结果是:
.-A---N---O
///
ID
请注意仅遵循 TREESAME 父级的规则(如果可用)如何删除 B
完全从考虑。 C 被认为是通过 N,但是是 TREESAME。 根提交
被比作一棵空树,所以我是 !TREESAME。
父/子关系仅在 --parents 中可见,但这不会影响
在默认模式下选择提交,所以我们已经显示了父行。
--没有父重写的完整历史
此模式与默认模式有一点不同:始终遵循合并的所有父级,
即使对其中之一来说是 TREESAME。 即使合并的不止一侧有
包含的提交,这并不意味着合并本身是! 在里面
例如,我们得到
IABNDOPQ
M 被排除在外,因为它对父母双方都是 TREESAME。 E、C、B都走过,
但只有 B 是 !TREESAME,所以其他人没有出现。
请注意,没有父级重写,就不可能真正谈论
提交之间的父/子关系,因此我们将它们显示为断开连接。
-- 父重写的完整历史
普通提交仅在它们是 !TREESAME 时才包括在内(尽管这可以更改,
见下面的--sparse)。
合并总是包括在内。 然而,他们的父列表被重写:沿着每个
父级,修剪掉不包括在内的提交。 这导致
.-A---M---N---O---P---Q
// / / /
IB / 日 /
\////
`-------------'
与 --full-history 比较而不重写上面的内容。 请注意,E 被修剪掉了,因为
它是 TREESAME,但是 P 的父列表被重写为包含 E 的父 I。
C 和 N 以及 X、Y 和 Q 也是如此。
除上述设置外,您还可以更改 TREESAME 是否影响包含:
- 稠密
如果对任何父级都不是 TREESAME,则包括已步行的提交。
- 疏
包括所有走过的提交。
请注意,如果没有--full-history,这仍然简化了合并:如果父母之一
是 TREESAME,我们只遵循那个,所以合并的另一边永远不会
走了。
--简化合并
首先,以与父重写相同的方式构建历史图--full-history
确实(见上文)。
然后根据以下公式将每个提交 C 简化为最终历史记录中的替换 C'
以下规则:
· 将 C' 设置为 C。
· 用它的简化P'替换C'的每个父P'。 在这个过程中,放下
作为其他父母的祖先或根的父母将 TREESAME 提交给
一棵空树,并删除重复项,但请注意不要丢弃所有父项
我们是 TREESAME。
· 如果在这个父重写之后,C' 是一个根或合并提交(有零或 >1
父母),边界提交,或 !TREESAME,它仍然存在。 否则,它被替换
与它唯一的父母。
通过与父级的 --full-history 进行比较,可以最好地展示这种效果
重写。 例子变成:
.-A---M---N---O
///
炎症性肠病
\//
`---------'
请注意 N、P 和 Q 与 --full-history 的主要区别:
· N 的父列表已被 I 删除,因为它是另一个父 M 的祖先。
尽管如此,N 仍然存在,因为它是 !TREESAME。
· P的父列表同样被我删除了。 然后 P 被完全删除,因为
它有一个父母并且是 TREESAME。
· Q 的父列表将 Y 简化为 X。然后删除 X,因为它是一个
TREESAME 根。 Q 然后被完全删除,因为它有一个父级并且是
树荫。
最后,还有第五种简化模式可用:
--祖先路径
将显示的提交限制为直接在“from”之间的祖先链上的提交
和“to”在给定的提交范围内提交。 即只显示提交
“to”提交的祖先和“from”提交的后代。
作为示例用例,请考虑以下提交历史记录:
D---E------F
/ \ \
B---C---G---H---I---J
/ \
A--------K----------------L--M
一个普通的 DM 计算作为 M 祖先的提交集,但不包括
D 的祖先。这有助于了解历史发生了什么
从 D 导致 M,从某种意义上说,“M 拥有的东西在 D 中不存在”。
此示例中的结果将是所有提交,除了 A 和 B(以及 D 本身,属于
课程)。
当我们想找出 M 中的哪些提交被引入的错误所污染时
D 并且需要修复,但是,我们可能只想查看 DM ,
实际上是 D 的后代,即不包括 C 和 K。这正是
--ancestry-path 选项确实如此。 应用于 DM 范围,它导致:
E--F
\ \
G---H---I---J
\
L--M
--simplify-by-decoration 选项允许您只查看大图
历史的拓扑结构,通过省略标签未引用的提交。 提交是
标记为 !TREESAME(换句话说,保留在描述的历史简化规则之后
以上)如果(1)它们被标签引用,或者(2)它们改变了路径的内容
在命令行中给出。 所有其他提交都标记为 TREESAME(受制于
简化了)。
二等分 助手
--二等分
将输出限制为一个提交对象,该对象大约介于包含和
排除提交。 请注意,坏的二分法 refs/bisect/bad 被添加到
包含的提交(如果存在)和好的二等分 refs refs/bisect/good-* 是
添加到排除的提交(如果存在)。 因此,假设没有 refs
参考/平分/,如果
$ git rev-list --bisect foo ^bar ^baz
输出 中点,两个命令的输出
$ git rev-list foo ^中点
$ git rev-list 中点 ^bar ^baz
将大致相同的长度。 找到引入回归的变化
因此被简化为二分搜索:重复生成和测试新的“中点”,直到
提交链的长度为 XNUMX。 不能与 --first-parent 结合使用。
--二等分变量
这与 --bisect 计算相同,除了不使用 refs/bisect/ 中的 refs,
除了这会输出准备由外壳评估的文本。 这些线路将
将中点修订的名称分配给变量 bisect_rev,以及预期的
bisect_rev 测试到 bisect_nr 后要测试的提交数,预期的
如果 bisect_rev 结果对 bisect_good 有益,则要测试的提交数,
如果 bisect_rev 结果不好,则要测试的预期提交次数
bisect_bad,以及我们现在平分到 bisect_all 的提交数量。
--一分为二
这将输出包含和排除的提交之间的所有提交对象,有序
通过它们与包含和排除的提交的距离。 refs/bisect/ 中的引用不是
用过的。 首先显示离它们最远的。 (这是唯一显示的
--二等分。)
这很有用,因为它可以很容易地选择一个好的提交来进行测试
避免出于某种原因测试其中的一些(例如,它们可能无法编译)。
此选项可以与 --bisect-vars 一起使用,在这种情况下,在所有排序之后
提交对象,将有相同的文本,就像单独使用 --bisect-vars 一样。
承诺 订购
默认情况下,提交按时间倒序显示。
--日期顺序
在显示所有子项之前不显示父项,否则显示提交
提交时间戳顺序。
--作者日期顺序
在显示所有子项之前不显示父项,否则显示提交
作者时间戳顺序。
--拓扑顺序
在显示所有子项之前不显示父项,并避免显示提交
多条历史线交织在一起。
例如,在这样的提交历史记录中:
----1----2----4----7
\ \
3----5----6----8---
其中数字表示提交时间戳、git rev-list 和朋友的顺序
--date-order 按时间戳顺序显示提交:8 7 6 5 4 3 2 1。
使用 --topo-order,它们会显示 8 6 5 3 7 4 2 1(或 8 7 4 2 6 5 3 1); 一些年长的
提交显示在较新的之前,以避免显示来自两个的提交
并行发展轨迹混杂在一起。
- 逆转
以相反的顺序输出提交。 不能与 --walk-reflogs 结合使用。
摆件 穿越
这些选项主要用于打包 Git 存储库。
--对象
打印列出的提交引用的任何对象的对象 ID。 --objects foo
^bar 因此的意思是“如果我有提交,请将我需要下载的所有对象 ID 发送给我
对象 酒吧 但不 FOO“。
--对象边缘
类似于--objects,但也打印以“-”为前缀的排除提交的ID
特点。 这是由 git-pack-对象(1) 建立一个“瘦”包,其中记录
基于这些被排除的提交中包含的对象的 deltified 形式的对象
减少网络流量。
--对象边缘攻击性
类似于--objects-edge,但它更努力地寻找排除的提交,代价是
增加的时间。 这是用来代替 --objects-edge 来构建“瘦”包的
浅存储库。
--索引对象
假设索引使用的所有树和 blob 都列在命令行中。
请注意,您可能也想使用 --objects。
--未打包
仅对 --objects 有用; 打印不在包中的对象 ID。
--no-walk[=(已排序|未排序)]
只显示给定的提交,但不遍历它们的祖先。 这没有效果
如果指定了范围。 如果给出未排序的参数,则提交显示在
它们在命令行中给出的顺序。 否则(如果已排序或没有参数
给定),提交按提交时间按时间倒序显示。 不可能是
结合--graph。
--做走
覆盖之前的 --no-walk。
承诺 格式化
使用这些选项, git 修订列表(1) 将类似于更专业的家庭
提交日志工具: 混帐日志(1) git 显示(1), git-whatchange(1)
--漂亮[= ], --格式=
以给定的格式漂亮地打印提交日志的内容,其中 可
之一 一条线, 短, 中等, ,, 富勒, email, 原, 格式: 和
格式:。 何时 以上都不是,并且有 %占位符 其中,它
表现得好像 --pretty=tformat: 被给予。
有关每种格式的一些其他详细信息,请参阅“漂亮格式”部分。 什么时候
= 部分被省略,它默认为 中等.
注意:您可以在存储库配置中指定默认的漂亮格式(请参阅
混帐配置(1))。
--缩写提交
不显示完整的 40 字节十六进制提交对象名称,只显示一个
部分前缀。 可以使用“--abbrev=”指定非默认位数”
(这也会修改差异输出,如果显示的话)。
这应该使“--pretty = oneline”对于使用的人来说更具可读性
80 列终端。
--无缩写提交
显示完整的 40 字节十六进制提交对象名称。 这否定了 --abbrev-commit 和
那些暗示它的选项,例如“--oneline”。 它也覆盖了
log.abbrevCommit 变量。
- 一条线
这是一起使用的“--pretty=oneline --abbrev-commit”的简写。
--编码=
提交对象在其编码中记录用于日志消息的编码
标题; 此选项可用于告诉命令重新编码提交日志消息
在用户首选的编码中。 对于非管道命令,这默认为
UTF-8。 请注意,如果一个对象声称以 X 编码并且我们以 X 输出,我们
将逐字输出对象; 这意味着原始序列中的无效序列
提交可以复制到输出。
--显示签名
通过将签名传递给 gpg --verify 来检查签名提交对象的有效性
并显示输出。
--相对日期
--date=relative 的同义词。
--日期=
仅对以人类可读格式显示的日期生效,例如使用
- 漂亮。 log.date 配置变量为 log 命令的 --date 设置默认值
选项。 默认情况下,日期显示在原始时区(提交者或
作者)。 如果 -local 附加到格式(例如,iso-local),则用户的本地
改为使用时区。
--date=relative 显示相对于当前时间的日期,例如“2 小时前”。 这
-local 选项不能与 --raw 或 --relative 一起使用。
--date=local 是 --date=default-local 的别名。
--date=iso(或 --date=iso8601)以类似 ISO 8601 的格式显示时间戳。 这
与严格的 ISO 8601 格式的不同之处在于:
· 一个空格而不是 T 日期/时间分隔符
· 时间和时区之间的空间
· 时区的小时和分钟之间没有冒号
--date=iso-strict(或 --date=iso8601-strict)显示严格的 ISO 8601 中的时间戳
格式。
--date=rfc(或 --date=rfc2822)以 RFC 2822 格式显示时间戳,通常在
电子邮件。
--date=short 仅以 YYYY-MM-DD 格式显示日期,而不显示时间。
--date=raw 以内部原始 Git 格式 %s %z 格式显示日期。
--date=format:... 将格式...提供给您的系统 strftime。 使用 --date=format:%c
以系统区域设置的首选格式显示日期。 参见 strftime 手册
格式占位符的完整列表。 使用 -local 时,正确的语法是
--date=本地格式:....
--date=default 是默认格式,和--date=rfc2822类似,有几个
例外情况:
· 星期几后没有逗号
· 使用本地时区时省略时区
--标题
以原始格式打印提交的内容; 每条记录都用 NUL 分隔
字符。
- 父母
还打印提交的父项(以“提交父项...”的形式)。 还启用
父重写,见 发展历程 简单化 联络一位教师
- 孩子们
还打印提交的子项(以“提交子项...”的形式)。 还启用
父重写,见 发展历程 简单化 联络一位教师
--时间戳
打印原始提交时间戳。
- 左右
标记可以从对称差异的哪一侧进行提交。 从左侧提交
边以 < 为前缀,右边以 > 为前缀。 如果结合--boundary,
这些提交以 - 为前缀。
例如,如果您有以下拓扑:
y---b---b 分支 B
/\/
/。
// \
o---x---a---一个分支A
你会得到这样的输出:
$ git rev-list --left-right --boundary --pretty=oneline A...B
> bbbbbbb... 3rd on b
> bbbbbbb... 2nd on b
<aaaaaaa...第三次
<aaaaaaa...第二次
-yyyyyyy... b 上的第一个
-xx... 1 日
- 图形
在左侧绘制提交历史的基于文本的图形表示
的输出。 这可能会导致在提交之间打印额外的行,以便
以正确绘制图形历史记录。 不能与 --no-walk 结合使用。
这使父重写,见 发展历程 简单化 联络一位教师
这意味着默认情况下 --topo-order 选项,但 --date-order 选项也可能
被指定。
--show-linear-break[= ]
当不使用 --graph 时,所有历史分支都会变平,这可能会使其难以
看到两个连续的提交不属于一个线性分支。 这个选项
在这种情况下,它们之间会设置障碍。 如果被指定,它是
将显示的字符串而不是默认的字符串。
- 数数
打印一个数字,说明将列出多少提交,并禁止所有其他提交
输出。 与--left-right 一起使用时,改为打印左和
正确提交,由制表符分隔。 与--cherry-mark一起使用时,省略patch
来自这些计数的等效提交并打印等效提交的计数
由制表符分隔。
漂亮 FORMATS
如果提交是合并,并且不是漂亮格式 一条线, email or 原,一个
附加行在前面插入 作者: 线。 这一行以“Merge:”开头,并且
祖先提交的 sha1 被打印出来,用空格分隔。 请注意,列出的
提交可能不一定是 直接 如果您有限制,则父母会提交
您对历史的看法:例如,如果您只对与某项相关的更改感兴趣
某个目录或文件。
有几种内置格式,您可以通过设置一个来定义其他格式
漂亮。 配置选项到另一个格式名称,或 格式: 字符串,如
描述如下(见 混帐配置(1))。 以下是内置格式的详细信息:
· 一条线
这被设计为尽可能紧凑。
· 短
犯罪
作者:
· 中等
犯罪
作者:
日期:
· ,
犯罪
作者:
犯罪:
· 富勒
犯罪
作者:
作者日期:
犯罪:
提交日期:
从
从:
日期:
主题:[补丁]
· 原
- 原 格式显示与存储在提交对象中完全相同的整个提交。
值得注意的是,无论是 --abbrev 还是 --abbrev ,SHA-1 都会完整显示
--no-abbrev 被使用,并且 父母 信息显示真正的父提交,没有
考虑到移植或历史简化。 请注意,此格式会影响
显示提交的方式,但不是显示差异的方式,例如使用 git log
- 生的。 要以原始差异格式获取完整的对象名称,请使用 --no-abbrev。
· 格式:
- 格式: 格式允许您指定要显示的信息。
它的工作方式有点像 printf 格式,但有一个明显的例外是你得到一个
换行符 %n 而不是 \n.
例如, 格式:" 作者 of %h 是 %一个, %ar%n该 标题 是 >>%s<<%n" 会显示
这样的事情:
fe6e0ee 的作者是 Junio C Hamano,23 小时前
标题是 >>t4119: test autocomputing -p 对于传统的差异输入。<
占位符是:
· %H: 提交哈希
· %h: 缩写提交哈希
· %T: 树哈希
· %t: 缩写树哈希
· %P: 父哈希
· %p: 缩写父哈希
· %一个: 作者姓名
· %一个:作者姓名(尊重 .mailmap,见 git 短日志(1)或 怪罪(1))
· %ae: 作者邮箱
· %aE:作者电子邮件(尊重 .mailmap,见 git 短日志(1)或 怪罪(1))
· %广告:作者日期(格式尊重 --date= 选项)
· %广告: 作者日期,RFC2822 风格
· %ar: 作者日期,亲戚
· %在: 作者日期,UNIX 时间戳
· %人工智能: 作者日期,类似 ISO 8601 的格式
· %: 作者日期,严格的 ISO 8601 格式
· %cn: 提交者姓名
· %CN:提交者名称(尊重 .mailmap,请参阅 git 短日志(1)或 怪罪(1))
· %ce: 提交者邮箱
· %cE:提交者电子邮件(尊重 .mailmap,请参阅 git 短日志(1)或 怪罪(1))
· %光盘: 提交者日期(格式尊重 --date= 选项)
· %光盘: 提交者日期,RFC2822 风格
· %cr: 提交者日期,相对
· %ct: 提交者日期,UNIX 时间戳
· %ci: 提交者日期,类似 ISO 8601 的格式
· %cI: 提交者日期,严格的 ISO 8601 格式
· %d: ref 名称,例如 --decorate 选项 混帐日志(1)
· %D: ref 名称没有 " (", ")" 包装。
· %e: 编码
· %s: 主题
· %f: 清理主题行,适用于文件名
· %b: 身体
· %B:原始身体(未包装的主题和身体)
· %GG:来自 GPG 的原始验证消息,用于签名提交
· %G?: 显示“G”代表好的签名,“B”代表坏的签名,“U”代表好的,
不受信任的签名和“N”表示没有签名
· %GS: 显示签名提交的签名者姓名
· %GK: 显示用于签署签名提交的密钥
· %gD: reflog 选择器,例如 refs/stash@{1}
· %gd: 缩短的 reflog 选择器,例如 stash@{1}
· %gn: reflog 身份名称
· %gN: reflog 身份名称(尊重 .mailmap,请参阅 git 短日志(1)或 混帐-
怪(1))
· %ge: reflog 身份电子邮件
· %gE:reflog 身份电子邮件(尊重 .mailmap,请参阅 git 短日志(1)或 混帐-
怪(1))
· %gs: reflog 主题
· %信用: 切换颜色为红色
· %C绿色: 切换颜色为绿色
· %C蓝色: 将颜色切换为蓝色
· %克雷塞特: 重置颜色
· %C(...):颜色规范,如 color.branch.* 配置选项中所述; 添加
auto,开始时只有在为日志输出启用颜色时才会发出颜色
(通过 color.diff、color.ui 或 --color,并尊重
前者,如果我们要去一个终端)。 单独的自动(即 %C(auto))将打开
在下一个占位符上自动着色,直到再次切换颜色。
· %m: 左、右或边界标记
· %n: 新队
· %%: 生的 %
· %x00: 从十六进制代码打印一个字节
· %w([ [, [, ]]]): 切换换行,如 -w 选项 混帐-
短日志(1)。
· %<( [,trunc|ltrunc|mtrunc]): 使下一个占位符至少占据 N 列,
如有必要,在右侧填充空格。 可选择在开头截断
(ltrunc)、中间 (mtrunc) 或结尾 (trunc) 如果输出长于 N
列。 请注意,截断仅适用于 N >= 2。
· %<|( ): 使下一个占位符至少占用到第 N 列,填充
如有必要,右侧的空格
· %>( ), %>|( ): 相似 %<( ), %<|( ) 分别,但填充空格
在左边
· %>>( ), %>>|( ): 相似 %>( ), %>|( ) 分别,除了如果
下一个占位符占用的空间比给定的多,并且它的左边有空格,
使用这些空间
· %><( ), %><|( ): 相似 % <( ), %<|( ) 分别,但同时填充
侧面(即文本居中)
备注
某些占位符可能取决于为修订遍历引擎提供的其他选项。
例如,%g* reflog 选项将插入一个空字符串,除非我们是
遍历 reflog 条目(例如,通过 git log -g)。 %d 和 %D 占位符将使用
如果 --decorate 尚未在命令中提供,则为“短”装饰格式
线。
如果在后面添加 +(加号) % 占位符,立即插入换行符
在扩展之前当且仅当占位符扩展为非空字符串时。
如果在后面添加 -(减号) % 占位符,紧接在前面的换行符
当且仅当占位符扩展为空字符串时,扩展才会被删除。
如果在后面加一个``(空格) % 在占位符的前面插入一个空格
扩展当且仅当占位符扩展为非空字符串。
· 格式:
- 格式: 格式完全一样 格式:,除了它提供了“终结者”
语义而不是“分隔符”语义。 换句话说,每个提交都有
附加了消息终止符(通常是换行符),而不是分隔符
放置在条目之间。 这意味着单行格式的最终条目将
以新行正确终止,就像“oneline”格式一样。 为了
例:
$ git log -2 --pretty=格式:%h 4da45bef \
| perl -pe '$_ .= " -- NO NEWLINE\n" 除非 /\n/'
4da45be
7134973 -- 没有换行符
$ git log -2 --pretty=tformat:%h 4da45bef \
| perl -pe '$_ .= " -- NO NEWLINE\n" 除非 /\n/'
4da45be
7134973
此外,任何包含 % 的无法识别的字符串都会被解释为
tformat:在它前面。 例如,这两个是等价的:
$ git log -2 --pretty=tformat:%h 4da45bef
$ git log -2 --pretty=%h 4da45bef
GIT
部分 混帐(1) 套房
使用 onworks.net 服务在线使用 git-rev-list