Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让git在格式字符串中记录颜色多行占位符值?_Git_Colors_Format_Multiline_Git Log - Fatal编程技术网

如何让git在格式字符串中记录颜色多行占位符值?

如何让git在格式字符串中记录颜色多行占位符值?,git,colors,format,multiline,git-log,Git,Colors,Format,Multiline,Git Log,给定以下git log命令: 只有%GG多行占位符值的第一行被着色。但是我想让下面的文本保持相同的颜色,直到下一个%C重置当前选择的颜色。。。陈述我怎样才能做到这一点 我正在Fedora Desktop 21上使用Git 2.1.0版。我同时提出的一个解决方案是以下Bash脚本片段: function foobar { local -r committish="${1:-HEAD}" local -r tput_app="$(type -p tput)" if [[ -n $tput

给定以下git log命令:

只有%GG多行占位符值的第一行被着色。但是我想让下面的文本保持相同的颜色,直到下一个%C重置当前选择的颜色。。。陈述我怎样才能做到这一点


我正在Fedora Desktop 21上使用Git 2.1.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
}
这个解决方案不能让我满意,因为我通常更喜欢简单的解决方案而不是简单的问题。但至少它对我有用

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
}