git log和git log --decorate有什么区别?

15

我测试了这两个命令,但是它们的输出没有任何区别。

带有和不带有--decorate选项的git log输出

以下问题来自前端开发课程

你在使用git log命令时,是否可以看到标签信息?正确答案是,需要使用git log --decorate而非git log命令。

它们之间有什么区别?


4
男人页面上有什么关于它的内容?有什么不清楚的地方吗? - Mat
2个回答

26

根据您所使用的 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 loggit log --decorate的输出没有区别。


2

在 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.decorateauto.

我们记录了前者,但未记录后者。

让我们也记录它们。

git log现在在其手册页中包括:

选项--decorate--decorate=short的简写。 如果已配置,则默认为log.decorate的配置值,否则为auto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接