Git の結果を変数に保存すると、奇妙な動作が発生します

Git の結果を変数に保存すると、奇妙な動作が発生します

2 つのブランチを持つ Git リポジトリがあります。

$ git branch
* master
  test/branch

次のようにすると、特定のブランチを個別にリストできます。

$ git branch --list master
* master

$ git branch --list test/branch
  test/branch

ただし、このコマンドを変数として保存すると、予期しない結果になります。

$ LOCAL=$(git branch --list master); echo $LOCAL
index.php readme.md master

$ LOCAL=$(git branch --list test/branch); echo $LOCAL
test/branch

結果は常に一貫しているわけではありません。作業しているリポジトリに応じて、スラッシュのあるブランチから予期しない結果が得られることもあれば、スラッシュのないブランチから得られることもあります。何が起こっているのか、またその理由は正確にはわかりません。

1 つのブランチをリストするとディレクトリ内のファイルとブランチ自体がリストされるのに、もう 1 つのブランチをリストするとブランチだけがリストされるのはなぜですか?

答え1

*上記では、Bash がの先頭に現れる を展開しているように見えます$LOCAL。 を試してくださいecho "$LOCAL"

関連情報