【问题标题】:List git branches in directory using bash with formatting使用带有格式的bash列出目录中的git分支
【发布时间】:2015-05-26 13:38:54
【问题描述】:

我想使用 bash 列出一组目录中的 git 分支。

现在我只想以不同的方式格式化分支名称,如果它是“master”。换句话说,如果分支是“主”,我想用蓝色或任何其他颜色显示它。

【问题讨论】:

  • 您在实现这一目标时遇到了什么困难?
  • ...|grep --color 'master$' 会这样做吗?
  • @Biffen 不过,这将无法显示任何不匹配的行。
  • @EtanReisner 是的。不确定OP想要什么。 ...|grep --color '\(master\)\?$',那么。

标签: git bash shell ubuntu formatting


【解决方案1】:

没有必要为此发送cd。就用这样的东西

reset=$(tput sgr0)
blue=$(tput setaf 4)
for dir in directory_name_1 directory_name_2 ...; do
    branch=$(GIT_DIR="$dir/.git" git symbolic-ref --short HEAD)

    color=
    if [ master = "$branch" ]; then
        color=$blue
    fi

    printf '%s: %s%s%s\n' "${dir##/*}" "$color" "$branch" "$reset"
done

使用tput 获取当前终端的正确控制代码,用于重置属性 (sgr0) 并将前景色 (setaf) 设置为蓝色(默认颜色 4)。

【讨论】:

  • 很漂亮,tput 虽然给了我这个错误:tput: unknown terminfo capability 'srg0'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-13
  • 2014-08-24
  • 2011-10-17
  • 2018-03-04
  • 1970-01-01
  • 2016-06-29
  • 2022-01-09
相关资源
最近更新 更多