
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"
。