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

JJD*_*JJD 303 git version-control formatting logging commit-message

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

此外,我尝试使用手册页中定义占位符.虽然,我找不到缩短日志消息的命令.我尝试了这一行git log --pretty=format:'%h : %s',它在一行中显示了短路哈希%h和完整的消息%s.

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


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

Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.
Run Code Online (Sandbox Code Playgroud)

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

Gau*_*ier 492

你试过这个吗?

git log --pretty=oneline --abbrev-commit
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 还有`git log --oneline` --oneline是一个内置的简写,用于"--pretty = oneline --abbrev-commit". (80认同)
  • 那就是tx.哦,而且,我有一个充满s的页面,所以我自然地为`'%s'`添加了一个'%`.C-; (7认同)
  • @Phlip,试试`git log --pretty = format:'s'` (2认同)

900*_*000 141

git log --oneline想做什么?


ati*_*kan 35

更好的更容易的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"
Run Code Online (Sandbox Code Playgroud)

产量

git lg
Run Code Online (Sandbox Code Playgroud)

输出更改了行

git lg -p
Run Code Online (Sandbox Code Playgroud)

进一步阅读.
https://coderwall.com/p/euwpig/a-better-git-log
高级阅读.
http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/


Tha*_*Guy 25

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

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

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


tec*_*yle 20

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

git log --pretty=format:%s
Run Code Online (Sandbox Code Playgroud)

  • `%s` 代表主题;`%b` 代表主体;两者均为“%B”(https://git-scm.com/docs/pretty-formats 中的“原始主体”) (11认同)

Eng*_*hly 13

如果您只想commit-id打印commit message

git log --pretty=format:"%h %s"

%hhash_id和的%s简写subjectName[message_name]



您可以通过以下命令显示后面的commit-id日期message

git log --pretty=format:"%h %s %C(yellow)(%cr)"

%C是颜色的简写,例如我想用不同的颜色显示日期(red,green,blue, yellow,...etc)

%cr是提交者日期的简写,相对


或者您可以使用此命令进行打印hash_idfirst word在提交消息中使用:

git log --oneline | awk '{print $1 " " $2}'

或者

git log --oneline


oti*_*i10 8

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

git log --pretty=oneline | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

  • 如果你只想要哈希...`git log --pretty = format:"%H"` (7认同)

gMa*_*ale 7

如果您只想要消息的第一行(主题):

git log --pretty=format:"%s"
Run Code Online (Sandbox Code Playgroud)

如果您希望该分支上的所有消息都返回到 master:

git log --pretty=format:"%s" master..HEAD
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的一点是,如果您想为快速降价发行说明添加小项目符号:

git log --pretty=format:"- %s" master..HEAD
Run Code Online (Sandbox Code Playgroud)


小智 5

git log --format="%H" -n 1 
Run Code Online (Sandbox Code Playgroud)

使用上面的命令来获取commitid,希望这会有所帮助。