6 de dezembro de 2011

Apagando branches locais que não existem mais no origin

Continuando a falar sobre Branches remotos no git,  vamos dar um passo adiante, já que resolvemos adotar o modelo de branching do pessoal da Nvie porque o nosso estava meio confuso e com algumas falhas.

Esse artigo da Nvie é a explicação mais clara que vi sobre o assunto. Normalmente lemos sobre os comandos do git e das possibilidades, mas raramente encontramos material sobre workflow eficiente.

Esse post vai te contar como apagar branches locais que já existiram no origin, mas que foram apagados de lá. Se não existem mais lá, também não precisam existir na sua cópia local.

O git não administra automaticamente a sincronização desses branches e isso é bom. Se eu quiser manter algum branch comigo por algum motivo, posso deixá-lo sem problema. Mas no dia-a-dia, acaba ficando sujeira no seu repositório local. Os branches de novas features ou releases e hotfixes criados e apagados por seus colegas ficam ali escondidos.

Para enxergá-los, use o comando git branch -a.
$ git branch -a
* develop
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/master
  remotes/origin/novo-cliente
  remotes/origin/painel-de-controle

No meu caso, os branches "novo-cliente" e "painel-de-controle" já foram apagados do repositório remoto (o origin), mas continuam aqui no meu repositório local.

Para livrar-me deles, usei o comando git remote prune origin.
Se você quiser saber o que será eliminado antes de apagá-los do seu repositório local, use a opção --dry-run: git remote prune --dry-run origin.

Depois de rodar o git remote prune origin, meu repositório local ficou equiparado ao origin, em termos de branches:
$ git remote prune origin
Pruning origin
URL: https://xxxxxxx@yyyyyyy.com/xxxxx/teste.git
 * [pruned] origin/novo-cliente
 * [pruned] origin/painel-de-controle
$ git branch -a
* develop
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/master

Em breve falaremos mais sobre o funcionamento desse workflow e os comandos que podem te ajudar a trabalhar com ele.

0 comentários:

Postar um comentário