Eu acho que deve funcionar para copiar o diretório para ser renomeado para um novo diretório com o nome desejado, e excluir o diretório de idade , e git add
, git commit
e push
tudo. Mas esse é o melhor caminho?
Eu acho que deve funcionar para copiar o diretório para ser renomeado para um novo diretório com o nome desejado, e excluir o diretório de idade , e git add
, git commit
e push
tudo. Mas esse é o melhor caminho?
Respostas:
Renomear básico (ou mover):
git mv <old name> <new name>
Renomear maiúsculas de minúsculas - por exemplo. de casesensitive
para CaseSensitive
- você deve usar duas etapas:
git mv casesensitive tmp
git mv tmp CaseSensitive
( Mais sobre a distinção entre maiúsculas e minúsculas no Git… )
… Seguido de commit e push seria a maneira mais simples de renomear um diretório em um repositório git.
casesensitive
a CaseSensitive
, você pode fazer desta forma: git mv casesensitive Temp
e depois git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
então re-add e comprometer
git config core.ignorecase false
e depois executar os comandos em sucessão, ou então, na segunda parte, eu receberia um source is empty
erro.
Se você receber este erro: fatal: renomear 'foldername' falhou: argumento inválido
Tente o seguinte:
git mv foldername tempname && git mv tempname folderName
git mv foldername tempname
e git mv tempname folderName
, que devem funcionar no Windows.
1. Altere o nome de uma pasta de pasta antiga para nova pasta
git mv oldfolder newfolder
2. Se a nova pasta já estiver no seu repositório e você quiser substituí-la e usar: - force
git mv -f oldfolder newfolder
Não se esqueça de adicionar as alterações ao índice e enviá-las após renomear com git mv.
3. Renomeando o nome da pasta para folderName em sistemas de arquivos que não diferenciam maiúsculas de minúsculas
Renomear simples com um comando mv normal (não git mv) não será reconhecido como uma troca de arquivos do git. Se você tentar com o comando 'git mv' como na linha a seguir
git mv foldername folderName
Se você estiver usando um sistema de arquivos que não diferencia maiúsculas de minúsculas, por exemplo, você está em um Mac e não o configurou para diferenciar maiúsculas de minúsculas, você receberá uma mensagem de erro como esta:
fatal: falha ao renomear 'foldername': argumento inválido
E aqui está o que você pode fazer para fazê-lo funcionar: -
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 nome da pasta diferente, a pasta pode finalmente ser renomeada para o novo nome da pasta. Depois desses 'git mv', novamente, não se esqueça de adicionar e confirmar as alterações. Embora essa provavelmente não seja uma técnica bonita, ela funciona perfeitamente bem. O sistema de arquivos ainda não reconhecerá uma alteração nas maiúsculas e minúsculas, mas o git deve renomeá-lo para um novo nome de pasta, e é isso que queríamos :)
Você pode renomear o diretório usando o sistema de arquivos. Então você pode fazer git rm <old directory>
e git add <new directory>
( página de Ajuda ). Então você pode confirmar e empurrar.
O Git detectará que o conteúdo é o mesmo e que é apenas uma operação de renomeação e aparecerá como uma entrada de renomeação no histórico. Você pode verificar se esse é o caso antes da confirmação usandogit status
No aplicativo da Web, acho que você não pode, mas pode renomear todas as pastas no Git Client; ele moverá seus arquivos para as novas pastas renomeadas, do que confirmar e enviar para o repositório remoto.
Eu tive um problema muito parecido: tive que renomear pastas diferentes, de maiúsculas para minúsculas (como Abc -> abc), renomeei todas as pastas com um nome falso (como 'abc___') e comprometido com o repositório remoto, depois que renomeei todas as pastas para o nome original com letras minúsculas (como abc) e as levou!
Eu o resolvi em duas etapas. Para renomear a pasta usando o comando mv, você precisa de direitos para isso, se não tiver o direito, poderá seguir estas etapas. Suponha que você queira renomear maiúsculas e minúsculas para maiúsculas e minúsculas.
Etapa 1: renomeie a pasta (sensível a maiúsculas e minúsculas) para outra coisa do explorer. Por exemplo, renomeie maiúsculas de minúsculas para folder1 e confirme essa alteração.
Etapa 2: renomeie esta pasta recém nomeada (folder1) para o nome sensível a maiúsculas e minúsculas esperado (sensível a maiúsculas e minúsculas), por exemplo. Renomeie a pasta1 para Diferenciar maiúsculas de minúsculas. Confirme essa alteração.
Para renomear maiúsculas de minúsculas, git mv somefolder someFolder
já funcionou para mim antes, mas não hoje por algum motivo. Então, como solução alternativa, criei uma nova pasta temp
, movi todo o conteúdo de somefolder
para temp
, excluí somefolder
, comprometi o e temp
, em seguida someFolder
, criei , movi todo o conteúdo de temp
para someFolder
, excluído temp
, confirmado e enviado por push someFolder
e funcionou! Aparece como someFolder
no git.
Simplesmente renomeie a pasta. O git é um "rastreador de conteúdo"; portanto, os hashes SHA1 são os mesmos e o git sabe que você o renomeou. A única coisa que muda é o objeto de árvore.
rm <directory>
git add .
git commit