当我执行不带管道或文件重定向的git log --oneline命令时,它会提供有关HEAD位置和分支(在以下示例中为master)的信息
$ 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
但是,当我通过更少的管道或将其重定向到文件中时,HEAD和主信息就会消失。我尝试将stderr重定向为加入stdout,但这没有什么区别。
$ git log --oneline --color = never 2>&1 | / usr / bin / more
8bc8511 Today # 12
1381438 Today # 11
d87d53a Today # 10
718aef9 Today # 9
b05e17e Today # 8
.....
2643d93 Initial commit
我想访问该信息,但是如何?
答案 0 :(得分:3)
使用--decorate
标志
git log --oneline --decorate --color=never | less
-decorate [= short | full | auto | no]
打印显示的所有提交的引用名称。如果指定了short,则不会打印ref名称的前缀refs / heads /,refs / tags /和refs / remotes /。如果指定了full,则将打印完整的引用名称(包括前缀)。如果指定了auto,则如果输出将输出到终端,则引用名称显示为好像给出了short,否则不显示引用名称。默认选项为short。
未指定--decorate
时的默认值为auto,表示“如果要添加到终端,则添加HEAD信息,否则不添加”。当您指定不带参数的--decorate
时,默认值为short
,这是您在问题中引用的简短HEAD信息。