¿Cómo cambio el nombre de un archivo en git que difiere solo por caso?

14

En mi proyecto git (Xcode), cometí un nombre de archivo con un caso incorrecto. Ahora fui a intentar cambiarle el nombre, pero cuando me comprometo, obtengo:

  

fatal: no agregará el alias de archivo 'MyProject / MyFile.h' ('MyProject / MyFilE.h' ya existe en el índice)

Estoy seguro de que esto se debe a que git no se utiliza para ejecutar un sistema de archivos que conserva mayúsculas y mayúsculas, como HFS +. Pero, ¿cómo me las arreglo?

Intenté cambiar el nombre de ambos archivos a otra cosa, lo confirmé y luego lo cambié a lo que quiero, pero sigue fallando (con el mismo mensaje de error).

    
pregunta Ken 15.05.2012 - 07:43

4 respuestas

20

Tal como se solicitó y respondió en stackoverflow , hay una manera más fácil de hacer esto que no implica crear un nuevo archivo. Sistema en un archivo de imagen de disco:

Mueva su archivo existente a un lado, confirme ese movimiento, luego muévalo hacia atrás usando el caso que le gustaría mantener y confirmar. Hecho.

Ejemplo:

mv foo foo2
git add -A
git commit -m "renaming"
mv foo2 FOO
git add -A
git commit --amend -m "renamed foo to FOO"
    
respondido por el mspasov 18.05.2012 - 17:01
2

Todavía no he encontrado una manera de solucionar esto directamente en un sistema de archivos que no distingue entre mayúsculas y minúsculas, necesita un sistema de archivos que distingue entre mayúsculas y minúsculas.

Afortunadamente, Mac OS X tiene un buen soporte de montaje en disco virtual, por lo que puede & rápidamente; Obtenga fácilmente (haga) un sistema de archivos (temporal) que distingue entre mayúsculas y minúsculas en su computadora.

Abra la utilidad de disco, cree una nueva imagen y configure el campo "Formato" en una de las versiones que distinguen entre mayúsculas y minúsculas de "Mac OS Extended". También asegúrate de que sea lo suficientemente grande para tu repositorio.

Monte su nuevo disco, revise el repositorio de git en él, asegúrese de que el archivo con el nombre correcto tenga el contenido correcto y elimine el otro. Confirma y presiona tus cambios, y luego puedes desmontar la imagen del disco y borrarla.

Si no tiene un servidor remoto para clonar (es decir, solo está ejecutando un repositorio git localmente en su disco duro), recuerde que puede clonar directamente desde el otro repositorio de git en su disco duro.

    
respondido por el drfrogsplat 15.05.2012 - 12:26
1

Paso 1 : Solo renombrar el archivo con un nombre que es más diferente (que solo el caso de las letras). Simplemente elija un nombre aleatorio diferente del nombre actual y del nombre que desea darle.

Paso 2 : confirma este archivo por GUI (Xcode) o por CLI (Terminal)

Paso 3 : renombrar el archivo como querías renombrarlo en primer lugar. Así que ahora, también habrá más diferencia que solo el caso con el nombre anterior.

Paso 4 : confirma el archivo renombrado nuevamente.

No se necesitan trucos de magia. Y puede elegir comprometerse por GUI o CLI.

    
respondido por el Bartel De Brabandere 14.12.2015 - 18:59
0

Yo uso sourcetree. Sin usar CLI hay un paso fácil para hacer esto. cambie el nombre del archivo a otro nombre (por ejemplo, Index.php a Index_old.php), luego confirme y presione .. nuevamente cambie el nombre al nombre deseado (index.php), luego confirme y envíe.

    
respondido por el Hemantha 04.07.2016 - 07:48

Lea otras preguntas en las etiquetas