如何输出git日志与第一行?

我正在尝试自定义git log的格式。我希望所有提交都显示在一行中。每一行应该只显示提交消息的第一行 我发现认为git log --pretty=short应该做到这一点,但在我的计算机上,它像git log一样显示完整的日志(除了时间戳)

此外,我尝试使用手册页中定义的占位符。但是,我找不到缩短日志消息的命令。我尝试了这一行git log --pretty=format:'%h : %s',它在一行中显示了短散列__abc1和完整消息%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.

因此,在给出的例子中,我只想输出Added some functionality.,前面加一个短散列。

258228 次浏览

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

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

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

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

你试过这个吗?

git log --oneline

它是git log --pretty=oneline --abbrev-commit的别名,并显示“短sha"以及“简短描述”,例如:

9bee8857 Write more code
831fdd6e Write some code Second line of message

问题是在提交消息的第一行之后缺少了一个空行。上面的命令通常适用于我,但我刚刚测试了一个提交,第二行没有空。我得到了和你一样的结果:全部信息在一行中。

空第二行是git提交消息的标准。你所看到的行为可能是有意实现的。

提交消息的第一行是一个简短的描述。如果你不能在一行中完成它,你可以使用几行,但是git认为在第一个空行之前的所有内容都是“简短描述”。oneline打印整个简短的描述,所以你所有的3行。

你可以定义一个全局别名,这样你就可以以一种更舒服的方式调用一个短日志:

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

然后你可以使用git slog来调用它(如果你启用了它,它甚至可以自动补全)。

更好的更容易 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"

输出

git lg

输出换行了

git lg -p
< br > < p > 另外(推荐) 将此代码粘贴到全局。gitconfig文件

[alias]
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
< p > 进一步阅读。 < br > https://coderwall.com/p/euwpig/a-better-git-log < br > 先进的阅读。 < br > http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/ < / p >

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

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

如果你需要没有哈希,只有第一行(主题行):

git log --pretty=format:%s
git log --format="%H" -n 1

使用上面的命令来获得提交,希望这对你有所帮助。

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

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

如果你想让这个分支上的所有消息返回到master:

git log --pretty=format:"%s" master..HEAD

最后但并非最不重要的是,如果你想添加一些小项目以快速降价发行说明:

git log --pretty=format:"- %s" master..HEAD

如果你只想打印commit-idcommit message

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

%hhash_id的缩写,%ssubjectName[message_name]的缩写



你可以用这个命令显示commit-idmessage后面的日期:

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