Como Renomear uma branch no Git - Local ou Remota (Do jeito certo)

De vez em quando eu costumo criar uma branch para depois começar a mexer no código, e quando percebo, vejo que o que estou fazendo não tem nada a ver com o nome que eu dei para aquela branch.

Então como renomear uma branch? De acordo com a documentação, para renomear uma branch (ramo) local no git só existe um comando: git branch -m "novo-nome".

Simples, não? Porém existem outras coisas a se aprender sobre a alteração do nome de uma branch.

Como renomear uma branch local

Se você já estiver na branch que deseja alterar o nome, utilize:

git branch -m "novo-nome"

Se você quer alterar o nome de outra branch, enquanto está na master, por exemplo, utilize:

git branch -m "nome-antigo" "novo-nome"

Em alguns casos, você pode querer alterar apenas a capitalização de alguma letra. Para isso, você deve usar git branch -M com o M maiúsculo. De acordo com a documentação (git branch -h), este parâmetro altera o nome, mesmo que este já exista. Tome cuidado apenas para não usar -M e sobrescrever outra branch importante por engano.

Como renomear uma branch remota

Infelizmente não existe um comando que altere o nome da branch remota diretamente no Github, Bitbucket, etc., mas nós podemos remover e reenviar a branch com o nome desejado.

Primeiramente, devemos alterar o nome da nossa branch local como explicitado anteriormente:

git branch -m "novo-nome"

Atenção: O método abaixo exclui a branch remota. Tenha certeza de que possui a última versão da branch remota em seu repositório local para poder fazer o push dela logo em seguida.

Obs: Substitua em "nome-antigo" pelo nome da sua branch antes de renomear.

git push origin :nome-antigo

O comando abaixo envia a branch renomeada para o repositório remoto

git push --set-upstream origin novo-nome

É isso aí. Tanto a sua branch local quanto remota foram renomeadas.

Mas e sobre o jeito certo?

Sobre o título deste artigo, me refiro à como nomear uma branch da forma mais correta de acordo com as convenções e práticas comuns.

Uma convenção na prática é um acordo com o seu time e com você mesmo.

É normal ter essa dúvida ao nomear uma branch. E para não ter vergonha de enviar um pull request, eu sempre procuro seguir uma certa lógica.

Existe a prática comum de mantermos a branch "master" sempre com o código em produção, enquanto usamos uma branch "dev" onde mesclamos todo o código de outras branches intermediárias para testar tudo antes de colocarmos em produção.

Mas além de não podermos utilizar espaços e alguns caracteres especiais, não existem convenções definitivas para nomenclatura de uma branch onde podemos dizer "isso aqui tá errado" e "isso aqui tá certo", mas recomenda-se algumas boas práticas:

  • Usar sempre letras minúsculas. O padrão já indica - master
  • Usar hífens para separar palavras. Ex: product-landing-page
  • Usar barras para subdivisões em um escopo maior. Ex: blog/comments, blog/article-list
  • Pontos para dividir versões quando for o caso - Muitos projetos open source usam essa convenção para guardar versões antigas do código. Ex: source-v1.2.2

Este artigo foi útil pra você?

Ricardo Metring

Ricardo Metring

Sou desenvolvedor full stack e co-fundador da Criar.io.
Trabalho há 10 anos com programação e sempre interessado em aprender mais.

Artigos relacionados