为什么'git branch'命令在通过命令替换使用时会有额外的输出?

时间:2017-12-28 19:32:46

标签: git command-substitution

说我在项目根目录下有一个包含这些项目的git repo,这也是我的工作目录。

dir1 dir2 script.sh

我有git分支标题为

master 077-fix_issue_a 078-fix_issue_b

我发现如果我运行git branch命令,我会得到以下输出

077-fix_issue_a
078-fix_issue_b
master

但如果我跑

for i in `git branch`
do
    echo $i
done

我得到了

的输出
077-fix_issue_a
078-fix_issue_b
dir1
dir2
script.sh
master

为什么git branch在使用命令替换运行时还包含目录项列表?

2 个答案:

答案 0 :(得分:2)

因为git用星号标记当前签出的分支,并且该星形扩展到当前目录中的所有文件。尝试

for i in $(git branch | cut -b 2-)

答案 1 :(得分:0)

没关系,我发现了。

git branch通过活动分支放置通配符。