Git clean up
Leia em: 2 minutosDepois de um certo tempo trabalhando com branchs
em um repositório Git, os branchs
tornam-se desatualizados e confusos. Sendo assim temos três tipos de branchs
para verificarmos:
- Branchs locais: Muito utilizadas no dia a dia
- Referências para branchs remotas: Itens como
origin/branch-name
- Branchs remotas: Branchs no servidor remoto (Ex: Github, Bitbucket, Gitorius)
Neste tutorial vou supor que sua branch
principal seja a master
.
Todos as branchs
(develop
, release
entre outras) são mescladas na branch
principal.
Branchs locais
Vamos listar todas as branchs
locais:
git branch
Nós podemos listar todas as branchs
que já foram mescladas com a branch
principal da seguinte maneira:
git checkout master
git branch --merged
E para remover as branchs
locais que já foram mescladas, basta executar este comando:
git branch -d name-your-branch-merged
Em seguida podemos listar todas as branchs
que ainda não foram mescladas com a branch
principal:
git branch --no-merged
Caso alguma branch
listada tenha sido abandonada, você pode simplemente deletá-la com a opção -D
:
git branch -D name-your-branch-abandoned
Referências para branchs remotas
Após executar git pull
ou git fetch
o Git cria referências das branchs
remotas no repositório local, mas as referências que já foram deletadas remotamente não são removidas localmente, sendo assim, há possibilidades das branchs
locais ficarem obsoletas.
Liste todas as branchs
remotas:
git branch -r
Para limpar todas as referências antigas, basta executar:
git remote prune origin
Dicas
É sempre bom se manter atualizado com o repositório online:
git fetch -p
Mas não se esqueça de inserir a opção -p
, ela resolve os problemas das branchs
que ficaram obsoletas ao atualizar as referencias remotas com as locais.
E para remover todas as branchs
locais que já foram mergeadas, com apenas um comando, execute:
git branch --merged | grep -v "\*" | grep -v master | grep -v dev | xargs -n 1 git branch -d
Este comando é grande para memorizar ou ficar digitando sempre. Para facilitar basta criar um arquivo binário da seguinte maneira:
Se estiver em um OSx
sudo wget -O /bin/git-clean-up https://gist.githubusercontent.com/SauloSilva/4b13902db1135849a8c9/raw/8febb88a14fc9f09c9235e4f1749301e8fd81e33/git-clean-up
sudo chmod +x /bin/git-clean-up
Se estiver no Linux
sudo wget -O /usr/bin/git-clean-up https://gist.githubusercontent.com/SauloSilva/4b13902db1135849a8c9/raw/8febb88a14fc9f09c9235e4f1749301e8fd81e33/git-clean-up
sudo chmod +x /usr/bin/git-clean-up
Da próxima vez que precisar fazer uma limpeza é so executar:
git clean-up
ou
git clean-up name-your-main-branch
Sendo assim ficou simples manter as branchs
organizadas.
Comentários:
Deixe sua dúvida, sugestão ou crítica, estou ansioso para saber tudo o que você achou sobre este post: