el cambio de nombre no se refleja cuando se realizan cambios

Estoy usando git en windows. Tengo el repository de origen descubierto y dos repositorys locales con la misma estructura de files. En el primer repository local cambié el caso de una carpeta cambiando el nombre con `mv git Folder \ file.txt folder \ file.txt 'y comprometiendo el cambio de nombre. Luego empujado al origen. En el segundo repository local realicé cambios, sin embargo, el caso no se refleja. Cuando veo los loggings de ese file, puedo ver que fue renombrado. ¿Cuáles podrían ser las razones por las cuales los cambios no se reflejan? Curiosamente, para algunas otras carpetas que renombré los cambios se reflejaron.

No estoy seguro de que haga el truco, pero intente

  1. Actualice el índice con lo que está en HEAD :

     git read-tree -i HEAD 
  2. Elimine los files y / o directorys que deberían renombrarse:

     del blah rmdir foo 
  3. Fuerza la creación de los files del tree de trabajo desde su versión en el índice:

     git checkout-index -a -f 

En el futuro, tenga en count que, desafortunadamente, Git no se ocupa bien de su caso. Y es comprensible: en Windows, NTFS no distingue entre mayúsculas y minúsculas mientras conserva las mayúsculas y minúsculas, y las FAT son insensibles a las mayúsculas y minúsculas y no preservan las mayúsculas y minúsculas. IOW, parece que simplemente no hay un comportamiento razonable que Git pueda exhibir con respecto a este tema: por un lado, debe tratar 'FoO / bAr.tXt' en el tree de commit y 'foo / bar.txt' en el sistema de files para significa el mismo file, y en el otro deberían significar cosas diferentes? No va a funcionar, y la única solución que podría imaginar es algún truco específico de Windows como git checkout-index --fix-work-tree-name-casing que realmente cambiaría el nombre de las entidades del tree de trabajo para que coincida con el índice.

Actualización: como se ha recomendado en otra parte , git reset --mixed HEAD puede usarse en lugar de git read-tree .