git rm E git mv

Às vezes o Git não é tão inteligente e não sabe diferenciar o caso de:

  • Você reescreveu um arquivo vs. você removeu o arquivo e criou um novo com mesmo nome;
  • Você renomeou um arquivo vs. você removeu o arquivo e criou outro parecido.

Para resolver isso, existem os comandos git rm e git mv.

git rm

O comando git rm registra no repositório que você removeu o arquivo, de tal forma que o Git não considerará que você reescreveu o arquivo ou renomeou. Exemplo, para remover o arquivo main.c:

git rm main.c

git mv

O comando git mv registra no repositório que você renomeou o arquivo, de tal forma que o Git não considerará que você removeu arquivo. Exemplo, para renomear o arquivo main.c de tal forma que o nome seja main.py:

git mv main.c main.py