Quantos arquivos você está movendo? A menos que você esteja falando sobre dezenas / centenas / milhares de arquivos, apenas mova fisicamente o arquivo - manualmente via GUI ou via o comando mv
- para o novo local e o Git detectará o fato de que o arquivo era:
- Excluído do local antigo.
- É um novo arquivo no novo local.
Então, para adicionar os novos arquivos, basta fazer um git add *
na raiz do seu projeto depois que os arquivos forem movidos, faça um commit e o Git manipulará o resto, incluindo a observação de que o arquivo que estava em um lugar agora está em outro .
E se de alguma forma você estiver falando de dezenas / centenas / milhares de arquivos, você precisará apenas criar um script no Bash para mover os arquivos e fazer o mesmo git add *
e confirmar processo e tudo deve ser bom.
Um script Bash como esse deve funcionar para mover todos os itens que terminam com a extensão *.coffee
em um diretório da árvore, independentemente do nível de aninhamento:
find . -name '*.coffee' |\
while read item_path
do
item_dirname=$(dirname "${item_path}");
mv ${item_path} ${item_dirname}/..;
done
PS: Em nenhum momento você deve usar git rm
para um procedimento como este. Apenas mova os arquivos, use git add *
para adicionar os arquivos recém-movidos e então faça um commit do Git e tudo ficará bem.