我非常喜欢简短的git日志格式,我可以在这里看到作者,日期和更改说明:
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
哪个输出:
fbc3503 mads Thu Dec 4 07:43:27 2008 +0000 show mobile if phone is null...
ec36490 jesper Wed Nov 26 05:41:37 2008 +0000 Cleanup after [942]: Using timezon
ae62afd tobias Tue Nov 25 21:42:55 2008 +0000 Fixed #67 by adding time zone supp
164be7e mads Tue Nov 25 19:56:43 2008 +0000 fixed tests, and a 'unending appoi
(来自stackoverflow问题“link text”)
现在,问题是,如何将其保存为我的机器上的新格式,因此我只需编写类似的内容,例如:
git log --format=jespers_favourite
答案 0 :(得分:33)
在较新版本的Git中(使用v1.7.8确认),可以使用git config pretty.named_format
设置命名的漂亮日志格式。可以使用<file-option>
参数在计算机范围,用户或文件级别设置这些参数。
创建名为jespers_favourite
的日志格式或整个机器使用--system
git config --system pretty.jespers_favourite "%h%x09%an%x09%ad%x09%s"
对于单个用户使用'--global'
git config --global pretty.jespers_favourite "%h%x09%an%x09%ad%x09%s"
将<file-option>
参数留空将默认为设置当前存储库的配置文件.git/config
,除非另有定义。
答案 1 :(得分:21)
考虑git log手册页提及:
--pretty[=<format>]
--format[=<format>]
以给定格式打印提交日志的内容,其中可以是oneline,short,medium,full,fulller,email,raw和format之一:省略时,格式默认为中等。
<format>
只能有预定义的值
只允许define an alias作为该命令的快捷方式。
[alias]
jespers_favourite = log --pretty=format:"%h%x09%an%x09%ad%x09%s"
或
[alias]
compactlog = log --pretty=format:"%h%x09%an%x09%ad%x09%s"
答案 2 :(得分:1)
您可以使用git-config配置默认的漂亮格式。从git-config文档:
format.pretty
The default pretty format for log/show/whatchanged command, See git-log(1), git-show(1), git-whatchanged(1).
例如:
git config --add format.pretty fuller
或原始海报所需的格式:
git config --add format.pretty "%h%x09%an%x09%ad%x09%s"
与其他git配置设置一样,format.pretty可以在全局,系统或存储库范围内设置(默认)。
答案 3 :(得分:1)
使用最新版本的git(此处为1.7…2.21),您可以将默认格式更改为命名格式或格式字符串。在执行此操作时,您还可以添加一些PRETTY FORMATS自动颜色。另外,我发现编辑文件比使用命令更容易。但我首先从他们那里获取正确的配置文件格式,然后再修改。
git config --global --add format.pretty \
"%C(yellow)%h%Creset%x09%Cred%<(13)%an%Creset%x09%Cblue%ad%Creset%x09%s"
在您的.gitconfig
中添加了以下内容:
[format]
pretty = %C(yellow)%h%Creset%x09%Cred%<(13)%an%Creset%x09%Cblue%ad%Creset%x09%s
但是,添加一个命名格式对您可能更有用,如问题的后面部分所述。
git config --global pretty.dateline \
"format:%C(yellow)%h%Creset%x09%Cred%<(13)%an%Creset%x09%Cblue%ad%Creset%x09%s"
或通过将您的.gitconfig
添加为:
[pretty]
dateline = format:%C(yellow)%h%Creset%x09%Cred%<(13)%an%Creset%x09%Cblue%ad%Creset%x09%s
如果同时添加两者,则可以使它们显示为:
[pretty]
dateline = format:%C(yellow)%h%Creset%x09%Cred%<(13)%an%Creset%x09%Cblue%ad%Creset%x09%s
[format]
pretty = dateline
应注意format:
前缀的区别,我个人希望保留默认的漂亮格式为medium
。如您所知,%ad
部分可以由--date=relative
或default
,iso8601
,local
,raw
,{{1}中的任何一个修改},relative
,rfc2822
;所以我喜欢这样使用它:
short