我正在尝试从我的git仓库中获取与正则表达式匹配的所有分支(
通常在命令行中,我会这样写:
git branches -a
并使用grep xxx
过滤)。通常在命令行中,我会这样写:
git branch -a | grep xxx
我正在尝试在.sh文件中执行相同的操作:
- 获取与正则表达式匹配的所有分支
- 将其拆分为数组
- 获取第一个分支
以下是我的代码:
#!/bin/bash
branches=( $(git branch -a | grep $1) )
echo branches : $branches
echo branch : ${branches[0]}
遗憾的是,它会在当前文件夹中添加所有文件。
这是输出结果:
$> checkout.sh 2887
branches : ant
branch : ant
如果我将branches=( $(git branch -a | grep $1) )
更改为branches=$(git branch -a | grep $1)
,那么我会得到目录中的所有文件以及分支名称在最后面。
git branch
直接使用模式匹配,无需使用 grep。我相信git branch -a --list "*$1*"
可以满足你的需求。 - Etan Reisner