当我执行没有管道或文件重定向的git log -oneline命令时,它提供了有关Head位置和分支的信息(下面的示例中的主机)
$ git log --oneline --color=never
8bc8511 (HEAD -> day_20190316) Today # 12
1381438 Today # 11
d87d53a Today # 10
718aef9 Today # 9
b05e17e Today # 8
....
2643d93 (master) Initial commit
但是,当我将其少处理或将其重定向到文件中时,头部和主信息就会消失。我已经尝试将STDERR重新定向加入Stdout,但这没有区别。
$ git log -oneline -color =从不2>& 1 |/usr/bin/more
8bc8511 Today # 12
1381438 Today # 11
d87d53a Today # 10
718aef9 Today # 9
b05e17e Today # 8
.....
2643d93 Initial commit
我想访问这些信息,但是如何?
使用 --decorate
flag
git log --oneline --decorate --color=never | less
来自git docs
- 装饰[= short | full | auto | no]
打印出所显示的任何提交的参考名称。如果指定了简短,则不会打印REF NAME前缀REFS/HEADS/,REFS/TAGS/和REFS/遥控器/不会打印。如果指定完整,将打印完整的REF名称(包括前缀)。如果指定了自动,则输出要进入终端,则ref名称显示为"给出短短",否则未显示REF名称。选项 - 固定型 - 代理=短。默认为log的配置值。定制如果配置,否则,auto。
未指定--decorate
的默认值是自动的,含义为"如果要到终端,则添加头部信息,否则不要'。当您在没有参数的情况下指定--decorate
时,它默认为short
,这是您在问题中引用的简短信息。