
У меня есть 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
Выше, похоже, что Bash расширяет , *
который появляется в начале $LOCAL
. Попробуйте echo "$LOCAL"
.