2009-09-17 45 views
22

我真的很喜欢短的git的日志格式,在那里我可以看到作者,日期和变化的描述是这样的:Git是如何保存预设git的日志--format

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 

(从计算器问题“link text”)

现在的问题是,我该如何保存这为我的机器上的一个新的格式,所以我只写类似,比如:

git log --format=jespers_favourite 
+0

我已经修复了您的评论后的答案。 – VonC 2009-09-18 10:33:37

回答

20

考虑到git的日志手册页中提到:

--pretty[=<format>] 
--format[=<format>] 

漂亮地打印在一个给定的格式提交日志的内容,在这里可以ONELINE,短期,中期,到处,更全面,电子邮件,原始和格式:。省略时,格式默认为中等。

<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" 
+0

@ftassi好点。我已恢复链接(与你提到的那个)。 – VonC 2013-01-05 13:31:09

+0

我也需要避开引号,才能使这个工作 – ftassi 2013-01-05 13:43:56

+0

@ftassi你需要在'git config alias.xxx ...'命令中跳过引号?不在'.config'文件本身中? – VonC 2013-01-05 13:51:43

28

在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

+2

这几乎是正确的,但有几个重要的注意事项:名称不能包含下划线(至少在Git 1.7.10中),自定义格式必须以“format:”开头(或引用内置格式)。 – RJHunter 2013-01-03 10:57:02

0

您可以使用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"

同其它混帐配置设置,格式。漂亮可以设置在全局,系统或存储库范围(默认)。