Como faço para cometer apenas mudanças de nome de arquivo sensíveis a maiúsculas e minúsculas em Git?

Eu mudei alguns nomes de arquivos, descapitalizando a primeira letra, como em Name.jpg para name.jpg. Git não reconhece estas alterações e eu tive que apagar os arquivos e carregá-los novamente. Existe alguma forma de Git fazer distinção entre maiúsculas e minúsculas ao verificar por alterações nos nomes dos arquivos? Eu não fiz nenhuma alteração no arquivo em si.

Você pode usar git mv:

git mv -f OldFileNameCase newfilenamecase
Comentários (16)

Git tem uma configuração que lhe diz se deve ser sensível a maiúsculas ou minúsculas: core.ignorecase'. Para dizer a Git para ser sensível a maiúsculas e minúsculas, simplesmente defina esta configuração parafalso':

git config core.ignorecase false

Documentação

A partir da documentação [git config(http://jk.gs/git-config.html):

"core.ignorecase

Se for verdade, esta opção permite várias soluções para permitir que o git funcione melhor em sistemas de arquivos que não são sensíveis a maiúsculas e minúsculas, como o FAT. Por exemplo, se uma listagem de diretórios encontra makefile quando o git espera Makefile, o git assumirá que é realmente o mesmo arquivo, e continuará a se lembrar dele como Makefile.

O padrão é falso, exceto git-clone(1) ou git-init(1) irá sondar e definir core.ignorecase true se apropriado quando o repositório for criado.

Sistemas de ficheiros não sensíveis a maiúsculas e minúsculas

Os dois sistemas operativos mais populares que têm sistemas de ficheiros não sensíveis a maiúsculas e minúsculas que eu conheço são

  • Janelas
  • OS X
Comentários (20)

Isto foi o que eu fiz no OS X:

git mv File file.tmp
git mv file.tmp file

Dois passos porque senão tenho um erro de "arquivo existe". Talvez isso possa ser feito em um passo, adicionando `--cached' ou algo assim.

Comentários (7)