Команда git branch -aпоказывает удаленные ветки, существующие в вашем локальном репозитории . Это может показаться немного запутанным, но чтобы понять это, вы должны понимать, что существует разница между удаленной веткой и веткой, которая существует в удаленном репозитории. Удаленные ветки - это локальные ветки, которые сопоставляются с ветвями удаленного репозитория. Таким образом, набор удаленных ветвей представляет состояние удаленного репозитория.
Обычный способ обновить список удаленных веток - использовать git fetch. Это автоматически получает обновленный список ветвей с удаленного устройства и настраивает удаленные ветки в локальном репозитории, а также извлекает любые объекты фиксации, которые могут отсутствовать.
Однако по умолчанию git fetchне удаляет удаленные ветки, у которых больше нет ветки на удаленном компьютере. Для этого вам необходимо явно сократить список удаленных веток:
git fetch --prune
Это автоматически избавит от удаленных веток, которых больше нет на пульте. После git branch -rэтого вы увидите обновленный список веток, которые действительно существуют на пульте дистанционного управления: и те, которые вы можете удалить с помощью git push.
При этом, чтобы использовать git push --delete, вам нужно указать имя ветки в удаленном репозитории; не имя вашей удаленной ветки. Итак, чтобы удалить ветку test(представленную вашей удаленной веткой origin/test), вы должны использовать git push origin --delete test.
git branch -aотобразит ветки на вашем локальном компьютере, а не на вашем удаленном. Правильно?