首页 > 解决方案 > 正则表达式 - grep 起源/除了原点/HEAD

问题描述

我想编写一个 bash 脚本来扫描我的存储库中的分支,逐个检查它们并使用 sed 修复每个源中的错字。

我的问题是列出过滤掉 origin/HEAD 的分支列表。

branches=$(git branch -r | grep 'origin/^(HEAD)+')

受此答案启发的代码:正则表达式 - 不包含某些字符

但我在 $branches 中有一个空列表。

标签: regexbash

解决方案


将 git 远程分支放入 Bash 数组中:

read -r -d '' -a branches < <(
  git \
    branch \
    --list \
    --remotes \
    --format '%(refname:lstrip=-1)' |
      grep -vF HEAD
)

推荐阅读