Para que Git registre un cambio de nombre de archivo que solo modifica el uso de mayúsculas y minúsculas —como de readme.md a README.md—, ejecute git mv desde el repositorio en Terminal y luego verifique el cambio en el área de preparación con git status. En muchos Mac, el formato APFS predeterminado conserva las mayúsculas y minúsculas de los nombres de archivo pero no distingue entre ellas, por lo que un cambio de nombre en el Finder o un mv ordinario pueden provocar que Git no reconozca la diferencia. Apple señala que APFS también puede formatearse como sensible a mayúsculas y minúsculas, por lo que el comportamiento depende del volumen. Apple Developer: Files and directories

Cambiar el nombre de un archivo rastreado con git mv

En Terminal, diríjase al repositorio que contiene el archivo. Reemplace las rutas de ejemplo a continuación con las rutas exactas actuales y deseadas. Entrecomillar cada ruta es una buena práctica si el nombre contiene espacios o metacaracteres de la shell.

git mv 'src/readme.md' 'src/README.md'
git status

El comando git mv de Git renombra la ruta en el árbol de trabajo y actualiza el índice; el cambio pasa al área de preparación (staged), pero aún requiere un commit. El manual de Git exige que la ruta de origen exista y describe que la actualización del índice ocurre tras un traslado exitoso. Asimismo, el flujo de trabajo en la línea de comandos documentado por GitHub recomienda comprobar git status después de git mv. Documentación de git-mv GitHub Docs: Cambiar el nombre de un archivo

Si la operación tiene éxito, examine la salida de status para confirmar que hay un cambio de nombre preparado desde la ruta antigua hacia la nueva. Revise todos los cambios preparados antes de hacer el commit, especialmente si también editó el archivo:

git diff --cached --summary
git diff --cached -- 'src/README.md'

El resumen ayuda a confirmar el cambio de ruta; el segundo comando le permite inspeccionar el contenido preparado para dicha ruta. Es posible que en algunos contextos Git muestre un cambio de nombre como una eliminación y una adición, ya que la representación del renombrado se infiere a partir del contenido y el historial del archivo. La comprobación fundamental aquí es que el índice contenga la ruta deseada y ningún cambio preparado involuntario.

Si falla el cambio de nombre directo que solo varía en mayúsculas y minúsculas

Algunos volúmenes que no distinguen entre mayúsculas y minúsculas o ciertas configuraciones de Git no aceptan un traslado directo cuyo origen y destino solo difieren en las mayúsculas/minúsculas. Utilice un nombre temporal con una ortografía diferente y, a continuación, traslade esa ruta temporal al nombre definitivo:

git mv 'src/readme.md' 'src/readme-case-tmp.md'
git mv 'src/readme-case-tmp.md' 'src/README.md'
git status

La ruta temporal no debe existir previamente. Tras ejecutar ambos comandos, confirme que status muestre únicamente el cambio de nombre previsto de la ruta antigua a la nueva y verifique el diff preparado. El método de dos pasos proporciona al sistema de archivos un nombre intermedio para diferenciar, mientras que git mv actualiza el índice de Git en cada paso realizado con éxito. Si alguno de los comandos devuelve un error, deténgase y revise git status y el directorio antes de volver a intentarlo; no agregue -f a menos que haya confirmado que sobrescribir el destino es una acción intencionada.

Comprobar el manejo de mayúsculas y minúsculas del repositorio

La opción de configuración core.ignoreCase de Git habilita soluciones alternativas para sistemas de archivos que no distinguen entre mayúsculas y minúsculas. Git documenta que clone e init sondean el sistema de archivos y asignan este valor cuando corresponde; también advierte que modificarlo puede provocar comportamientos imprevistos. Puede consultar la configuración efectiva con: Documentación de git-config

git config --get core.ignoreCase

Si no se imprime ningún valor, significa que este comando no ha encontrado ningún ajuste en la configuración efectiva. Evite recurrir a git config core.ignoreCase false como solución: esto modifica las suposiciones de Git, pero no hace que un volumen de macOS insensible a mayúsculas y minúsculas pueda almacenar dos nombres en el mismo directorio que solo se diferencien por su uso. El propósito documentado de este ajuste es ayudar a que Git trabaje con el comportamiento real del sistema de archivos, no cambiar dicho comportamiento.

Confirmar, hacer commit y compartir el cambio de nombre

Antes de hacer el commit, verifique la ortografía final en git status, inspeccione el resumen preparado y compruebe que no se incluyan cambios no relacionados. Cuando el cambio de nombre preparado sea correcto, confírmelo con un commit con un mensaje claro:

git commit -m "Rename readme file to uppercase"

Si planea compartir el commit, suba la rama empleando el flujo de trabajo habitual de ramas y repositorios remotos de su proyecto. El cambio de nombre queda registrado en el commit; el repositorio remoto lo recibirá únicamente después de hacer el push. En un volumen APFS con distinción de mayúsculas y minúsculas, los nombres que solo varían en mayúsculas/minúsculas pueden ser independientes, mientras que la configuración predeterminada que no distingue entre mayúsculas y minúsculas los trata como el mismo nombre. La comprobación local más fiable sigue siendo que el índice de Git y el estado del área de preparación muestren la ruta de destino deseada. Soporte de Apple: Formatos de sistemas de archivos disponibles en Utilidad de Discos en la Mac

Fuentes