DEV Community

Jessica Temporal
Jessica Temporal

Posted on Originally published at jtemporal.com on

Renomeando arquivos no Git do jeito certo (usando git mv)

Você já tentou renomear um arquivo nos seus projetos e teve dificuldade adicionar o ajuste em um commit? Isso não acontece só com você. Nessa colinha você vai aprender a renomear os seus arquivos em projetos git da forma correta para evitar dores de cabeça.

O problema de renomear um arquivo sem usar o git

Vamos dizer que você decidiu renomear um arquivo e, por questão de simplicidade você decide fazer isso na interface de pasta mesmo (ou usando o comando mv no terminal). Depois disso você quer fazer o commit da alteração de nomes e ao rodar o git status você se depara com essa situação:

imagem mostrando o arquivo deletado e um arquivo novo criado

Se você renomeia o arquivo sem usar o Git, o Git “se perde” e acha que o arquivo original foi apagado e um arquivo novo foi criado como mostrado na imagem acima. Por causa desse comportamento, você acaba tendo que obrigatoriamente fazer dois passos para commitar a alteração no nome:

  1. Adicionar o arquivo deletado;
  2. Adicionar o arquivo novo.

Para piorar, não é possível adicionar um arquivo “deletado” sem usar explicitamente o nome desse arquivo, o que torna esse processo todo ainda mais tedioso, pra não mencionar a esquisitice da frase “adicionar um arquivo deletado”.

Vamos dizer que você perseverou, adicionou o arquivo deletado e adicionou o arquivo novo e mais uma vez você roda um git status, e ai o git entende que foi uma alteração no nome do arquivo, veja:

imagem mostrando o resultado de git status após adicionar o arquivo e o git entendendo que o arquivo foi nomeado

Essa é uma solução relativamente tranquila se você não precisa fazer isso com frequência, mas existe uma solução melhor.

Renomeando um arquivo no git do jeito certo

Para começar é necessário resistir ao impulso de renomear o arquivo usando a interface e passar a usar o comando git mv. Usando o mesmo exemplo do caso acima, onde renomeamos o arquivo books.md para book.md, o comando fica assim:

git mv books.md book.md

Enter fullscreen mode Exit fullscreen mode

O resultado de usar apenas um comando é o seguinte:

  1. Renomear o arquivo;
  2. Adicionar a mudança de nome em staging.

Depois disso você pode seguir o fluxo normal de commits e fazer o commit dessa alteração.

Recapitulando

Não use a interface para renomear os arquivos nos seus projetos Git, use o comando git mv para fazer isso e já adicionar essa mudança em staging para um commit.

GitFichas

GitFicha #052: git mv origem destino

Top comments (0)