¿Cómo hacer que git ignore los cambios por si acaso?

106

No estoy muy seguro de lo que está sucediendo aquí, pero a veces un archivo en particular en mi repositorio cambiará el nombre de su nombre. p.ej,:

antes de: File.h

después: file.h

Realmente no me importa por qué sucede esto, pero esto hace que git piense que es un archivo nuevo, y luego tengo que ir y volver a cambiar el nombre del archivo. ¿Puedes hacer que git ignore los cambios de mayúsculas y minúsculas?

[editar] Sospecho que Visual Studio está haciendo algo extraño con ese archivo en particular, porque parece suceder con mayor frecuencia cuando lo abro y lo guardo después de los cambios. Sin embargo, no tengo ninguna forma de corregir errores en VS, pero espero que git sea un poco más capaz.

1800 INFORMACIÓN
fuente
1
Re: Visual Studio guarda archivos en minúsculas ¿Qué versión de Visual Studio estás usando? La última vez que verifiqué que esto parecía ser mejor en la versión de 2008. En 2005, el error parecía ocurrir cuando los archivos se abrían a través del depurador en lugar del explorador de soluciones.
Adam Mitz
En realidad, sí, esto es 2005. Sin embargo, no hay posibilidad de una actualización por un tiempo.
1800 INFORMACIÓN

Respuestas:

177

Desde la versión 1.5.6 hay una ignorecaseopción disponible en la [core]sección de.git/config

por ejemplo, agregar ignorecase = true

Para cambiarlo por un solo repositorio, desde esa carpeta ejecute:

git config core.ignorecase true

Para cambiarlo globalmente:

git config --global core.ignorecase true
MarkB
fuente
21
git config core.ignorecase true o git config --global core.ignorecase true para aplicar globalmente.
Aaron Jensen
@graywh: está documentado en git-config bajo core.ignorecase ( kernel.org/pub/software/scm/git/docs/git-config.html )
Ben Lings
4
Gracias, finalmente descubrí por qué git no tenía en cuenta los cambios de mi caso. ignorecase = falsehizo el truco, se estableció por defecto en true-_-
Alex C
15

Puedes forzar a git a cambiar el nombre del archivo solo en mayúsculas con este comando:

git mv --cached name.txt NAME.TXT

Tenga en cuenta que esto no cambia el caso del archivo en su copia extraída en una partición de Windows, pero git registra el cambio de mayúsculas y minúsculas y usted puede confirmar ese cambio. Los pagos futuros utilizarán la nueva carcasa.

Andrew Arnott
fuente
1
"error: opción desconocida 'almacenada en caché'." Tampoco aparece en los documentos: git-scm.com/docs/git-mv
Alex
12

En la versión 1.6.1.9 de git para Windows, encontré que "ignorecase = true 'en la configuración ya estaba configurado de forma predeterminada.

Juan C
fuente
7
Sí, y cuando trabaja con archivos Java, desea que esta configuración se establezca en falso; de lo contrario, podría tener problemas al realizar dicha refactorización (la clase HTMLParser se convierte en HtmlParser o al revés).
PhiLho
Lo mismo para git versión 2.10.1.windows.1
Kars Barendrecht
3
Sé que esto es antiguo, pero no tiene sentido en Windows establecer ignorecase en false ya que Windows es un sistema operativo que no distingue entre mayúsculas y minúsculas. Esto se aplica ya sea que esté trabajando con Java o (¡jadeo!) C # o cualquier otra cosa.
ingyhere
5

La situación descrita en la pregunta ahora está volviendo a ocurrir con Mac OS X, git versión> = 1.7.4 (creo). La cura es establecer su ignorecase = false y cambiar el nombre de los archivos en minúsculas (que git cambió de esa manera, no Visual Studio) de nuevo a su UsualCase a mano (es decir, 'mv myname MyName').

Más info aquí .

akauppi
fuente