tag - ¿Cambiar caso de un archivo en Windows?
organizar carpetas en windows 10 (5)
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo hacer que Git ignore los cambios en el caso? 4 respuestas
Hay un par de archivos en nuestra base de código controlada por git a los que me gustaría cambiar el nombre. Específicamente, solo quiero cambiar el caso del archivo, de modo que sourceCode.java
convierta en SourceCode.java
, por ejemplo. El truco: estoy en una caja de Windows, y el sistema de archivos piensa que esos son del mismo nombre.
¿Cómo puedo hacer que Windows y Git reconozcan ese cambio y lo verifiquen?
Con NTFS (o FAT), un solo comando de git mv
no resuelve el problema. Esta pregunta muestra una técnica que funciona: git mv y solo cambia caso de directorio
Eche un vistazo aquí para obtener más consejos sobre cómo hacerlo:
¿Cómo hacer que Git ignore los cambios en el caso?
O:
git mv -f name.java Name.java
Los siguientes pasos me permitieron cambiar el caso en Windows:
- Agregue
ignorecase = false
a[core]
en.git/config
; - Mueva los archivos que va a renombrar fuera del directorio de su proyecto;
- Agregue las eliminaciones al índice;
- Mueva todos los archivos a su ubicación original y cambie el caso de los archivos y / o directorios;
- Agregue todos los archivos "nuevos" al índice;
- Eliminar
ignorecase = false
agregado en el primer paso.
De esta forma, tiene una única confirmación que contiene el cambio de nombre y hace que sea fácil cambiar, por ejemplo, un directorio completo.
Si está en un sistema de archivos FAT, su única opción es hacer un cambio de nombre de dos etapas:
-
sourceCode.java
nombre desourceCode.java
aanything.you.like
-
SourceCode.java
nombre deanything.you.like
SourceCode.java
En los días en que usábamos Perforce teníamos exactamente este problema y esta era la única solución que podíamos encontrar.
Ten cuidado. Hacer esto puede conducir a cambios que son imposibles de fusionar. Git se confunde al fusionarse en Windows porque no puede decidir si el viejo nombre en mayúsculas y el nuevo nombre en minúsculas son el mismo archivo o no (para Git no lo son, pero para el sistema de archivos son). Para fusionar, debe realizar una solución manual como eliminar los archivos antes de fusionar.
Vea el problema de la rebase de Git con archivos del mismo nombre pero con un caso diferente
No estoy seguro de si este problema es peor que tener un archivo con un nombre no convencional en su proyecto por los siglos de los siglos, pero vale la pena saber si hay muchos usuarios con muchas sucursales que finalmente se fusionarán.