Git: podar tag local inexistente no remoto

Para realizar prune local git tags, ou a "poda de tags locais" dos ramos do git de trabalho que não fazem parte do repositório remoto, teremos que associar alguns comandos.

  $ git tag -l | xargs git tag -d # remove all local tags
  $ git fetch -t                  # fetch remote tags

  • git tag -l: lista as tags localmente;
  • | xargs: processa listagem do comando anterior como parametros do próximo comando;
  • git tag -d: remove todas as tags informadas como parametros;
  • git fetch -t : atualiza as tags com o repositório remoto;

Executando em uma linha temos:

$ git tag -l | xargs git tag -d && git fetch -t

Alternativamente podemos criar alias para facilitar o uso.

Os alias são configurados no arquivo ~/.gitconfig:

Identifiquemos o atalho como pt = prune tags

#~/.gitconfig
[alias]
    ... ... ... # your existing aliases
    pt = !git tag -l | xargs git tag -d && git fetch -t

Ou também via comandos git como demonstrado abaixo:

git config --global alias.pt '!git tag -l | xargs git tag -d && git fetch -t'

Execução com alias configurado:

  $ git pt

Comentários