git提交者名称的颜色



我正在和几个人一起做一个项目,这是我第一次使用git,我发现给git输出上色很有趣。例如:

 git log --graph --format='%C(yellow bold)%h%Creset %C(white bold)%s%Creset%n     %C(magenta    bold)%cr%Creset   %C(green bold)%an%Creset'

我现在想把我的名字涂成蓝色粗体,其他作者的名字涂成绿色粗体。这可能吗?还有一件事:我正在使用windows git bash.

如果您在git/compat/examples文件夹中使用示例git-log脚本并修改它以每次处理一个修订,您可以检查作者并更改内容。然而,这比正常的git慢得多。以下是我的版本:

#!/bin/bash
#
USAGE='[--max-count=<n>] [<since>..<limit>] [--pretty=<format>] [git-rev-list options]'
SUBDIRECTORY_OK='Yes'
. git-sh-setup
revs=$(git-rev-parse --revs-only --no-flags --default HEAD "$@") || exit
[ "$revs" ] || {
        die "No HEAD ref"
}
for rev in $(git-rev-list $(git-rev-parse --default HEAD "$@"))
do
    an=$(git log -1 --pretty=format:%an $rev)
    case $an in
        *Thoyts) color=blue ;;
        *)       color=green ;;
    esac
    git log -1 --decorate --pretty=format:"%C(yellow bold)%h%Creset %C(white bold)%<(70,trunc)%s%Creset%n    %C(magenta bold)%cr%Creset    %C(${color} bold)%an%Creset" $rev
done

在git-gui存储库上运行此代码似乎可以正常工作。我把主题截断了一点(%<(70,trunc)部分)。

不直接在git中。这些%C(name)指令可以让您将作者名称设置为蓝色或绿色粗体,但您不能以某种方式测试字符串,然后根据结果为其上色。

您可以以其他方式注释作者姓名(这样您就可以以某种自动方式准确地告诉git log输出的哪一部分是作者姓名),然后用一个单独的程序对git log输出进行后处理,该程序为一个名称或几个特定名称涂上一种颜色,并为所有其他名称涂上另一种颜色。然后创建一个git别名(例如git logx),调用shell来运行git log ... | your-recoloring-program | less -FRSX或其他。

最新更新