Em um repository Git, como renomear corretamente um diretório?

Em um repository Git, como renomear corretamente um diretório? Eu acho que deveria funcionar para copiar o diretório para ser renomeado para um novo diretório com o nome desejado, e excluir o diretório antigo , e git add , git commit e push all. Mas este é o melhor caminho?

Renomear básico (ou mover):

 git mv   

Renomear maiúsculas e minúsculas – por exemplo. de casesensitive a CaseSensitive – você deve usar duas etapas:

 git mv casesensitive tmp git mv tmp CaseSensitive 

( Mais sobre a diferenciação de maiúsculas no Git… )

… Seguido de commit e push seria a maneira mais simples de renomear um diretório em um repository git.

Se você receber este erro: fatal: a renomeação de ‘foldername’ falhou: Argumento inválido

Tente isto:

git mv foldername tempname && git mv tempname folderName

1. Alterar o nome de uma pasta de oldfolder para newfolder

 git mv oldfolder newfolder 

2. Se newfolder já estiver em seu repository e você quiser substituí-lo e usar: – force

 git mv -f oldfolder newfolder 

Não se esqueça de adicionar as alterações ao índice e confirmá-las após renomear com git mv.

3. Renomeando o nome da pasta para nome da pasta em filesystems insensíveis a maiúsculas e minúsculas

Simples renomear com um comando mv normal (não git mv) não será reconhecido como um filechange do git. Se você tentar com o comando ‘git mv’ como na linha seguinte

 git mv foldername folderName 

Se você estiver usando um sistema de arquivos insensível a maiúsculas e minúsculas, por exemplo, você está em um Mac e não o configurou para diferenciar maiúsculas de minúsculas, você verá uma mensagem de erro como esta:

fatal: renomear ‘foldername’ falhou: argumento inválido

E aqui está o que você pode fazer para que isso funcione:

 git mv foldername tempname && git mv tempname folderName 

Isso divide o processo de renomeação renomeando a pasta primeiro para um nome de pasta completamente diferente. Depois de renomeá-lo para o diferente nome da pasta, a pasta pode finalmente ser renomeada para o novo nome da pasta. Depois desses ‘git mv’s, novamente, não esqueça de adicionar e confirmar as mudanças. Embora isso provavelmente não seja uma técnica bonita, funciona perfeitamente bem. O sistema de arquivos ainda não reconhecerá uma alteração dos casos de letras, mas o git o renomeia para um novo nome de pasta, e isso é tudo que queremos 🙂

Você pode renomear o diretório usando o sistema de arquivos. Então você pode fazer git rm e git add ( página de ajuda ). Então você pode se comprometer e empurrar.

O Git detectará que o conteúdo é o mesmo e que é apenas uma operação de renomeação, e aparecerá como uma input de renomeação no histórico. Você pode verificar se este é o caso antes do commit usando o git status

Do Web Application eu acho que você não pode, mas você pode renomear todas as pastas no Git Client, ele irá mover seus arquivos nas novas pastas renomeadas, do que commit e push para o repository remoto.

Eu tive um problema muito semelhante: eu tive que renomear pastas diferentes de maiúsculas para minúsculas (como Abc -> abc), eu renomeiei todas as pastas com um nome fictício (como ‘abc___’) e depois cometi para repository remoto, depois que eu renomei todas as pastas para o nome original com as minúsculas (como abc) e levou-as!

FYI eu continuei recebendo “FAILED \ Access negado” ao usar o Tortoise ou as opções de linha de comando para fazer a renomeação. Ele só funciona a partir da opção de linha de comando depois que eu fechei a janela do Explorer.

Em https://github.com em sua interface de repository:

Vá para configurações -> Nome do repository -> insira seu novo nome na área.

 git rm -rf --cached path/to/your/directories 

Em seguida, adicione novamente e confirme.

Simplesmente renomeie a pasta. git é um “rastreador de conteúdo”, então os hashes SHA1 são os mesmos e o git sabe que você o renomeia. A única coisa que muda é o object tree.

 rm  git add . git commit