Git 为什么';吉特分行';通过命令替换使用时,命令是否有额外输出?

Git 为什么';吉特分行';通过命令替换使用时,命令是否有额外输出?,git,command-substitution,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_

假设我在项目根目录下有一个包含这些项目的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分支在使用命令替换运行时也包含目录项列表?

我发现这一点

git branch在活动分支旁放置一个通配符。

不管我发现了什么


git branch在活动分支旁边放置一个通配符。

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

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

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

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

更一般地说,在编写脚本时,避免使用这种用法。相反,对每个ref/heads使用
git
。有关详细信息,请参阅。更一般地说,在编写脚本时,避免使用这种用法。相反,对每个ref/heads使用
git
。有关详细信息,请参阅。