git log --oneline提供管道或重定向到文件时丢失的HEAD信息

时间:2019-03-17 03:03:37

标签: bash git

当我执行不带管道或文件重定向的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

我想访问该信息,但是如何?

1 个答案:

答案 0 :(得分:3)

使用--decorate标志

git log --oneline --decorate --color=never | less

来自the git docs

  

-decorate [= short | full | auto | no]

     

打印显示的所有提交的引用名称。如果指定了short,则不会打印ref名称的前缀refs / heads /,refs / tags /和refs / remotes /。如果指定了full,则将打印完整的引用名称(包括前缀)。如果指定了auto,则如果输出将输出到终端,则引用名称显示为好像给出了short,否则不显示引用名称。默认选项为short。

未指定--decorate时的默认值为auto,表示“如果要添加到终端,则添加HEAD信息,否则不添加”。当您指定不带参数的--decorate时,默认值为short,这是您在问题中引用的简短HEAD信息。