Git如何保存预设的git日志--format

mcdcgff0  于 2022-11-20  发布在  Git
关注(0)|答案(4)|浏览(118)

我非常喜欢短的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

(from堆栈溢出问题“链接文本”)
现在,问题是,我如何在我的机器上将其保存为新格式,这样我只需编写如下内容,例如:

git log --format=jespers_favourite
lmvvr0a8

lmvvr0a81#

在更新版本的Git(v1.7.8)中,可以使用git config pretty.named_format设置named pretty-print日志格式。这些格式可以在 * 机器级、用户级或文件级 * 使用<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

xvw2m8pv

xvw2m8pv2#

Git log手册页提到:

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

以指定的格式打印提交日志的内容,其中可以是oneline、short、medium、full、fuller、email、raw和format:。如果省略,格式默认为medium。
<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"

Rokit在注解中添加:
逃避报价工作,直到我尝试添加自定义颜色。
为此,我还必须在转义的引号周围添加一组额外的常规引号,例如:

log --pretty=format:"\"%C(#9be3bc) %s\""
xytpbqjk

xytpbqjk3#

你可以使用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 config设置一样,format.pretty可以在全局、系统或仓库范围内设置(默认)。

laawzig2

laawzig24#

在最近的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=relativedefaultiso8601localrawrelativerfc2822short中的任何一个来修改;所以我喜欢这样使用它:

git log -25 --pretty=dateline --date=short -- when/was/this/changed.txt

相关问题