首页 文章

如何只用第一行输出git log?

提问于
浏览
246

我正在尝试自定义 git log 的格式 . 我希望所有提交都显示在一行中 . 每行应仅显示提交消息的第一行 .
found out git log --pretty=short 应该做的伎俩,但在我的电脑上,它显示完整的日志 git log (除了时间戳) .

此外,我试图使用placeholders as defined in the man page . 虽然,我找不到缩短日志消息的命令 . 我尝试了这一行 git log --pretty=format:'%h : %s' ,它在一行中显示了短路哈希 %h 和完整的消息 %s .

我在Vista上使用 git version 1.7.3.1.msysgit.0 .


也许它与我编写提交消息的方式有关 . 这是一个例子:

Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.

因此,通过给出的示例,我只希望通过shortend哈希输出 Added some functionality. .

7 回答

  • 25

    这将打印出没有哈希的消息(仅限主题行):

    git log --pretty=format:%s
    
  • 23

    如果你想总是以这种方式使用 git log ,你可以添加git别名

    git config --global alias.log log --oneline

    之后 git log 将打印通常由 git log --oneline 打印的内容

  • 412

    你试过这个吗?

    git log --pretty=oneline --abbrev-commit
    

    问题可能是你在第一行之后缺少一个空行 . 上面的命令通常适用于我,但我刚刚在没有空第二行的提交上进行了测试 . 我得到了与你相同的结果:整条信息在一行上 .

    空第二行是git commit消息中的标准 . 您看到的行为可能是故意实施的 .

    提交消息的第一行是简短描述 . 如果你不能在一行中创建它,你可以使用几行,但是git会将第一个空行之前的所有内容都视为"short description" . oneline 打印整个简短描述,所以你的所有3行 .

  • 115

    git log --oneline 做你想要的吗?

  • -7

    通过制作 alias Bettereasier git日志 . 将下面的代码粘贴到终端只需一次会话 . 将代码粘贴到zshrc或bash配置文件以使其持久 .

    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    

    Output

    git lg
    

    Output 改变了行

    git lg -p
    

    Further Reading.
    https://coderwall.com/p/euwpig/a-better-git-log
    Advanced Reading.
    http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/

  • 6

    您可以定义全局别名,以便以更舒适的方式调用短日志:

    git config --global alias.slog "log --pretty=oneline --abbrev-commit"

    然后你可以使用 git slog 来调用它(如果启用它,它甚至可以用于自动完成) .

  • 4

    没有提交消息,只有哈希:

    git log --pretty=oneline | awk '{print $1}'
    

相关问题