git log --oneline 中的提交信息能否添加“更多内容”指示器?

3

如果您在Github上查看提交历史记录,例如,它将使用省略号指示哪些提交消息除了主题行外还具有其他行的内容:

Github history

在使用时:

git log --oneline

在终端中,是否有类似于“更多内容”指示器的方法?
1个回答

3

--oneline 是一个标准的(非常方便的)快捷格式,但对于任何更具体的内容,您可以依赖 --pretty 并构建您的输出。

尝试使用这个 漂亮格式 (文档)

git log --pretty=format:"%h %d %s %<(1,trunc)%b"

%h表示短哈希值
%d表示分支、标签和 HEAD 内容
%s表示主题
%<(1,trunc)将截断正文 (%b) 到...(如果有的话)


着色

如果您不想失去 --oneline 的自动着色效果,可以使用%C(<color>) 来复制大部分效果(文档)

git log --pretty=format:"%C(yellow)%h %C(auto)%d %C(reset)%s %C(red)%<(1,trunc)%b"

别名

当然,由于没有人想每次都输入那么长的格式,将其制作成一个别名几乎是必须的。

git config --global alias.line 'git log --pretty=format:"%C(yellow)%h %C(red)%d %C(reset)%s %C(red)%<(1,trunc)%b"'

# which combines well with most options
git line
git line -10
git line --all --graph
< p > < em > (最后,您还可以在快捷方式中设置-10或任何其他值作为默认值,除非您显式地覆盖它,否则它将被使用,非常方便)

(最后,您还可以在快捷方式中设置-10或任何其他值作为默认值,除非您显式地覆盖它,否则它将被使用,非常方便)

跟进问题:在被截断的日志行中,还有一个意外的换行符。请参见此图像。我认为这是因为它正在获取最后的字符(其中包括一个换行符),然后添加...。有没有办法避免这种情况? - Jonah
@Jonah 不是的 :-) 这是git用来绘制--graph的命令。如果你喜欢直接列表,只需去掉该参数即可。 - Romain Valeri
你能详细解释一下吗?为什么git添加...会使它也画出一个图形线? - Jonah
你输入了什么命令来获得你在那个截图中展示的内容? - Romain Valeri
1
@Jonah,你可以通过在格式字符串结尾处使用%-来删除...后面的不必要的空行,例如:--format=format:' .......... %<(1,trunc)%b%-' - Erik Wognsen
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接