Estou desenvolvendo um projeto no OS X Lion que está sob controle de versão do Git. Eu tinha esses diretórios em minúsculas e depois os coloquei em maiúscula (por exemplo, emailaddresses => EmailAddresses), mas o Git não parece reconhecer a alteração. Ele ainda acha que os diretórios estão em minúsculas quando eu executo git ls-files
e outros comandos.
Isso é inofensivo ou devo fazer outra coisa para que o Git perceba essa mudança?
Respostas:
Você provavelmente está usando HFS + sem distinção entre maiúsculas e minúsculas. Normalmente, trabalho dessa maneira assim:
fonte
git push origin master
. Se o git se recusar a atualizar o controle remoto, talvez seja necessário adicionar um arquivo fictício (por exemplotouch stam
) e executar o push. Seguido por uma exclusão subsequente do stam e empurre novamente.Você pode dizer ao git para levar em conta o caso executando
git config core.ignorecase false
fonte
Como git mv no Mac Case-Sensitively
Isso está acontecendo porque o Mac OS X implementa os recursos de preservação e insensibilidade de maiúsculas e minúsculas, destinados a ajudá-lo.
Embora as sugestões de renomeação dupla na outra resposta funcionem, eu recomendo o uso de '--force' para obter um resultado de práticas recomendadas:
Nota: se você tentar sem a opção force, o git vomitará sobre você assim:
No exemplo acima, o comando git falha e nenhum arquivo é alterado no sistema de arquivos ou no índice do git.
fonte
fatal: not under version control
.git
Os comandos funcionam apenas em diretórios com repositórios GIT.Tente alterar a opção core.ignorecase do git config para false no seu arquivo .gitconfig.
fonte
git config core.ignorecase false
As etapas a seguir me ajudaram a resolver o problema:
Renomeie a pasta para
temp
:Preparar e confirmar:
Renomeie a
temp
pasta para sua escolha:Concluído - Agora você pode pressionar.
fonte
Se você fizer isso
git mv AAA aaa
ougit mv -f AAA aaa
não, isso não funcionará e você terá um errofatal: renaming 'AAA' failed: Invalid argument
.Como
AAA
eaaa
são UMA ÚNICA pasta / arquivo em sistemas de arquivos que não diferenciam maiúsculas de minúsculas, movaAAA
paraaaa
significa moverAAA
comoaaa/AAA
.Então você deveria fazer
Espero que seja útil para você.
fonte
O motivo disso é que o sistema operacional baseado no LINUX ou o macOS ignoram maiúsculas de minúsculas para o nome do arquivo / pasta. Precisamos resolver esse problema seguindo as etapas abaixo
fonte
Nenhuma dessas soluções funcionou para mim. O SourceTree estava sempre criando meu ramo com um caso diferente do que eu queria. Então, como eu resolvi isso:
1 - Veja seus arquivos git no localizador. Você pode fazer isso digitando isso no terminal:
2 - Reinicie o localizador e vá para o diretório do projeto
3 - Agora basta alterar o nome da pasta, digamos de Recurso para Recurso. E lá vai você.
fonte
Você também pode fazer isso manualmente sem usar comandos GIT. Dentro da
.git
pasta, basta excluir a pasta com o nome desejado, ou sejaSomeName
. E, em seguida, renomeie a pastasomename
paraSomeName
. Mais detalhes em: Como corrigir o nome da pasta definido como maiúsculo e o git convertido em minúsculofonte
Eu tive o mesmo problema e use a solução abaixo. Eu uso isso para renomear lotes, diretórios e arquivos, etc:
Conforme detalhado aqui.
fonte
Nada disso realmente me ajudou, eu ainda estava com o git me dizendo para esconder minhas alterações, porque minha situação era que minha pasta local estava em maiúscula, mas o remoto não, e minha ramificação estava atrasada e não podia mais puxar por causa das diferenças de capitalização de arquivo na estrutura da pasta.
A única maneira de corrigir isso era excluir minha filial local e verificar o controle remoto.
fonte