如何让格式字符串中的git-log颜色多行占位符值?

时间:2015-03-31 21:47:56

标签: git colors format multiline git-log

给出以下git-log命令:

git log --max-count=1 --format='format:%C(cyan)%GG'

只有%GG多行占位符值的第一行会被着色。但是我希望以下文本使用相同的颜色,直到下一个%C(...)语句重置当前选择的颜色。我怎样才能做到这一点?

我在Fedora Desktop 21上使用Git 2.1.0版。

1 个答案:

答案 0 :(得分:0)

我在此期间提出的一个解决方案是以下Bash脚本片段:

function foobar {
  local -r committish="${1:-HEAD}"
  local -r tput_app="$(type -p tput)"
  if [[ -n $tput_app ]]; then
    local -r color_cyan="$("$tput_app" setaf 6)"
    local line=''
    while read -r line; do
      printf '%s\n' "$color_cyan$line"
    done < <(git log --max-count=1 --format='format:%GG' "$committish")
    printf '%s\n' "$("$tput_app" sgr0)"
  else
    git log --max-count=1 --format='format:%GG' "$committish"
  fi
}

这个解决方案并不能让我满意,因为我通常更喜欢简单的解决方案来处理简单问但至少它对我有用。