根据您所使用的 git
版本,行为似乎有所改变。
旧版的 git
(例如 1.8.x)默认情况下不会对 git log
的输出进行修饰。更近期的 git
版本(从 2.12.2 开始)则默认使用 --decorate=auto
(这就像在输出到终端时使用 --decorate=short
,但是否则会像 --no-decorate
一样操作)。
换句话说,使用版本号为 1.8.3 运行 git log
,我可以看到:
commit 0b57f44b3371521f65eb7607310803c7e90dc023
但是使用2.14.4版本,我看到:
commit 0b57f44b3371521f65eb7607310803c7e90dc023 (HEAD -> master, origin/master)
我可以使用旧版的git
通过git log --decorate
命令获得相同的输出。
换句话说,如果你正在运行现代版本的git
,那么git log
和git log --decorate
的输出没有区别。
在 Git 2.33 版本(2021 年第三季度)中,文档更清晰地说明了 git log --decorate
的默认值:
请参见 提交 a0538e5(由 Đoàn Trần Công Danh (sgn
) 于 2021 年 6 月 8 日提交)。
(由 Junio C Hamano -- gitster
-- 合并于 提交 5ae1eb2,2021 年 7 月 8 日)
doc/log
: 正确的 --decorate 默认值报告者: Andy AO
签名者: Đoàn Trần Công Danh
git log 的 --decorate 有两个不同的默认选项: * 如果没有任何参数给出
--decorate
, 则默认为short
* 如果既没有给出--decorate
也没有给出--no-decorate
, 则默认为log.decorate
或auto
.我们记录了前者,但未记录后者。
让我们也记录它们。
git log
现在在其手册页中包括:
--decorate
是--decorate=short
的简写。
如果已配置,则默认为log.decorate
的配置值,否则为auto
。