O comando git branch -amostra ramificações remotas que existem no seu repositório local . Isso pode parecer um pouco confuso, mas para entendê-lo, é necessário entender que existe uma diferença entre um ramo remoto e um ramo que existe em um repositório remoto. Ramificações remotas são ramificações locais que são mapeadas para ramificações do repositório remoto. Portanto, o conjunto de ramificações remotas representa o estado do repositório remoto.
A maneira usual de atualizar a lista de ramificações remotas é usar git fetch. Isso obtém automaticamente uma lista atualizada de ramificações do controle remoto e configura ramificações remotas no repositório local, buscando também qualquer objeto de confirmação que esteja faltando.
No entanto, por padrão, git fetchnão remove ramificações remotas que não têm mais uma ramificação de contrapartida no controle remoto. Para fazer isso, você precisa explicitamente remover a lista de ramificações remotas:
git fetch --prune
Isso eliminará automaticamente as ramificações remotas que não existem mais no controle remoto. Depois, git branch -rmostrará uma lista atualizada dos ramos que realmente existem no controle remoto: E aqueles que você pode excluir usando git push.
Dito isto, para usar git push --delete, você precisa especificar o nome da ramificação no repositório remoto; não é o nome da sua filial remota. Então, para excluir o ramo test(representado pelo seu ramo remoto origin/test), você usaria git push origin --delete test.
git branch -alistará as ramificações no seu local e não no seu controle remoto. Certo?