【问题标题】:git branch vs $(git branch)git 分支 vs $(git 分支)
【发布时间】:2014-09-08 20:26:14
【问题描述】:

当我在命令行上执行 git branch 时,我会得到一个 repo 上所有分支的列表,但是当我在子 shell 中执行 $(git branch) 时,它首先会在顶层打印出一个文件列表在打印出分支名称之前在 repo 中的文件夹。为什么?

我基本上是在尝试使用 for 循环遍历分支,但文件列表破坏了我的脚本。

for i in $(git branch); do 
    echo $i
done

【问题讨论】:

标签: git bash subshell


【解决方案1】:
$ git branch
* master

在你的 shell 中尝试echo * master,看看你会得到什么?

提示:您将从* 的shell glob 扩展中获取当前目录中的文件列表。

更多详情请见DontReadLinesWithFor

【讨论】:

    【解决方案2】:

    因为您的第一个分支(或签出的分支)旁边有一个 *,这是一个 shell 通配符。这正在评估并扩展到当前目录中的文件列表。

    尝试在列表下方查看一个分支,您会发现要插入到当前已签出分支旁边的列表中的文件移动列表,不是在顶部。 p>

    【讨论】:

      猜你喜欢
      • 2017-02-18
      • 1970-01-01
      • 2023-03-06
      • 2013-03-27
      • 1970-01-01
      • 2012-05-22
      • 2015-04-06
      • 2011-06-02
      相关资源
      最近更新 更多