Se branches excluídas ainda aparecerem no Git do seu Mac, faça a poda (prune) das referências de rastreamento remoto do seu repositório local. Abra o Terminal, acesse a pasta do repositório, verifique qual remoto deseja atualizar e execute git fetch --prune origin. Isso atualiza as referências obtidas e remove as obsoletas associadas a origin; isso não exclui branches do servidor remoto nem remove suas branches locais. Documentação do git fetch do Git
O que é atualizado ao fazer o prune?
Uma branch de rastreamento remoto é o seu registro local de uma branch em um repositório remoto. Por exemplo, origin/feature-x representa o último estado obtido (fetched) da branch remota. Ela é separada de uma branch local chamada feature-x. Se a branch remota for excluída, sua referência local poderá permanecer até que o Git faça a poda. O mapeamento de busca padrão do Git geralmente armazena branches remotas em refs/remotes/origin/, embora um repositório possa usar um mapeamento diferente. O Git documenta como os refspecs de busca configurados mapeiam branches remotas.
O prune compara as referências atuais do remoto com as referências locais cobertas pela configuração de busca daquele remoto e, em seguida, remove as referências que não existem mais remotamente. Ele limpa a sua visualização local; não é um comando para excluir branches remotas. Isso pode tornar comandos como git branch --all mais fáceis de ler quando um repositório acumula referências de branches antigas. Orientações de poda do Git
Atualizar referências a partir do Terminal
A Apple documenta o zsh como o shell padrão no Terminal do Mac, embora um Mac ou ambiente gerenciado possa ser configurado de forma diferente. Os comandos Git abaixo funcionam na configuração habitual do Terminal do macOS. Manual do Usuário do Terminal da Apple
- Abra o Terminal e vá para a pasta do repositório. Se você souber o caminho, coloque-o entre aspas caso contenha espaços, por exemplo:
cd "/Users/sam/Projects/Client App"
Substitua o caminho de exemplo pelo caminho real do seu repositório. Se não tiver certeza de onde está, pwd exibe o diretório atual. Execute os comandos do Git de dentro do repositório.
- Confirme o repositório e o nome do remoto:
git status --short --branch
git remote -v
git remote -v lista os nomes e URLs dos remotos configurados. origin é comum, mas use o nome exibido para o servidor cujas referências você deseja atualizar. Se o repositório tiver vários remotos, faça o prune apenas no pretendido.
- Visualize as referências obsoletas antes de removê-las:
git remote prune --dry-run origin
O Git informa quais referências seriam podadas sem excluí-las. A opção dry-run pertence ao git remote prune; ela não busca novas pontas de branch. Documentação do git remote do Git
- Se a pré-visualização corresponder ao que você espera, atualize e pode em uma única etapa:
git fetch --prune origin
Isso faz a busca de acordo com o refspec configurado do remoto e remove as referências obsoletas cobertas por esse mapeamento. A saída do fetch do Git marca uma referência podada com -. Para podar sem buscar atualizações, use git remote prune origin. O Git documenta ambos os métodos pontuais.
- Verifique o resultado:
git branch --remotes
git branch --all
A listagem somente remota mostra as branches de rastreamento remoto; a listagem de todas as branches inclui tanto as branches de rastreamento remoto quanto as locais. Uma branch ausente na listagem remota ainda pode existir como uma branch local, e a poda não a remove.
Se a referência obsoleta permanecer
Primeiro, verifique se você usou o nome de remoto correto. Em seguida, considere a configuração de busca do repositório: os remotos podem ser configurados para rastrear apenas branches selecionadas, e refspecs personalizados alteram sobre quais referências o fetch e o prune atuam. Inspecione o mapeamento com git config --get-all remote.origin.fetch, substituindo origin se necessário. Se o remoto estiver configurado para rastrear apenas um subconjunto, as branches fora desse subconjunto podem não se comportar como o esperado sob uma busca padrão. O Git explica os refspecs de busca e seu efeito na poda.
Se o comando relatar um erro de rede ou autenticação, o Git não conseguiu concluir a busca remota; resolva o problema de conexão ou de acesso e tente novamente. Evite adicionar --prune-tags, a menos que deseje especificamente que a poda seja aplicada também às tags: o Git adverte que refspecs de tag explícitos podem fazer com que tags locais ausentes naquele remoto sejam removidas. A documentação de poda do Git explica essa ressalva sobre tags.
Use git fetch --prune origin quando quiser obter informações atualizadas de rastreamento remoto e limpeza juntas. Use git remote prune --dry-run origin primeiro quando quiser analisar os candidatos, ou git remote prune origin quando quiser apenas a limpeza sem buscar atualizações de branch.
Fontes
Alterar o shell padrão no Terminal do Mac — Suporte da Apple