我已经测试了这两个命令,但它们的输出之间没有任何区别。 the output
前端开发人员课程中的以下问题
使用您对订单git日志的了解,您是否在日志输出中看到标签?
正确的答案是否, git log --decorate
不是git log
它们之间有什么区别?
答案 0 :(得分:1)
根据您使用的git
版本,行为似乎有所变化。
较旧版本的git
(例如1.8.x)默认为 not 修饰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
的输出将没有差异。
答案 1 :(得分:0)
如上述@Mat注释所示,通过阅读git log文档可以回答这些类型的问题。以下是相关部分:
-装饰[=短|满|自动|否] 打印显示的所有提交的引用名称。如果指定了short,则不会打印ref名称的前缀refs / heads /,refs / tags /和refs / remotes /。如果指定了full,则将打印完整的引用名称(包括前缀)。如果指定了auto,则如果输出将输出到终端,则引用名称显示为好像给出了short,否则不显示引用名称。默认选项为short。
-decorate-refs =
-decorate-refs-exclude = 如果未给出--decorate-refs,则假装好像所有的refs都包括在内。对于每个候选人,如果它与--decorate-refs-exclude给出的任何模式匹配,或者与--decorate-refs给出的任何模式都不匹配,则不要将其用于装饰。
请注意,“装饰”本身默认为“短”。如果您没有从此参数看到不同的输出,则可能您没有任何提交引用。同样,请参见commit references
的文档答案 2 :(得分:0)
在 Git 2.33(2021 年第 3 季度)中,文档更清楚地说明了 git log --decorate
默认值:
请参阅 commit a0538e5 的 Đoàn Trần Công Danh (sgn
)(2021 年 6 月 8 日)。
(由 Junio C Hamano -- gitster
-- 于 commit 5ae1eb2 合并,2021 年 7 月 8 日)
doc/log
: --decorate 的正确默认值报告人:Andy AO
签字人:Đoàn Trần Công Danh
log --decorate 有两个不同的默认选项: * 如果 --decorate
不带任何参数,默认为 short
* --decorate
和 {{1} 都不应该} ,默认为 --no-decorate
或 log.decorate
。
我们记录了前者,但没有记录后者。
让我们也记录它们。
auto
现在包含在其 man page 中:
选项 git log
是 --decorate
的简写。
如果已配置,默认为 --decorate=short
的配置值,
否则,log.decorate
。