¿Cómo realizar cambios en los nombres de archivos solo en mayúsculas y minúsculas en Git?

Cambié el nombre de varios archivos dividiendo la primera letra, como en Name.jpg , en Name.jpg . Git no reconoce estos cambios, y tuve que eliminar los archivos y volver a cargarlos. ¿Hay alguna manera de que git pueda distinguir entre mayúsculas y minúsculas al verificar cambios en los nombres de los archivos? No he hecho ningún cambio en el archivo en sí.

930
16 июля '13 в 20:41 2013-07-16 20:41 Gil Shulman preguntó el 16 de julio de 2013 a las 20:41 2013-07-16 20:41
@ 11 respuestas

Puedes usar git mv :

 git mv -f OldFileNameCase newfilenamecase 
1144
03 янв. Respondido por Keith Smiley el 3 de enero 2014-01-03 18:57 '14 a las 18:57 2014-01-03 18:57

Git tiene un parámetro de configuración que le dice si debe ser sensible a mayúsculas y minúsculas: core.ignorecase . Para decirle a Git el valor de la caja, simplemente establezca este parámetro en false :

 git config core.ignorecase false 

Documentacion

De la documentación de git config :

border=0

core.ignorecase

Si es verdadero, esta opción le permite usar varias soluciones para que Git funcione mejor en sistemas de archivos que no distinguen entre mayúsculas y minúsculas, como FAT. Por ejemplo, si la lista del directorio detecta un makefile , cuando Git espera un makefile , Git asumirá que es el mismo archivo y continuará recordándolo como un makefile .

El valor predeterminado es falso, excepto que git -clone (1) o git -init (1) verificará y establecerá core.ignorecase true si es necesario al crear un repositorio.

Sistemas de archivos insensibles a mayúsculas

Los dos sistemas operativos más populares que no tienen sistemas de archivos que no distinguen entre mayúsculas y minúsculas, que yo sepa son

  • para ventanas
  • OS X
754
17 июля '13 в 1:52 2013-07-17 01:52 la respuesta la da el usuario 456814, 17 de julio de 13 a 1:52, 2013-07-17 01:52

Esto es lo que hice en OS X:

 git mv File file.tmp git mv file.tmp file 

Dos pasos, porque de lo contrario obtuve un error de "archivo existe". Quizás esto se pueda hacer en un solo paso agregando --cached o similares.

93
13 нояб. Respuesta dada por Sijmen Mulder 13 de noviembre 2013-11-13 17:27 '13 a las 17:27 2013-11-13 17:27

Usando SourceTree, pude hacer todo esto desde la interfaz de usuario.

  • Renombrar FILE.ext a whatever.ext que FILE.ext
  • Etapa
  • Ahora cambia el nombre de whatever.ext FILE.ext a FILE.ext
  • Repita este archivo de nuevo.

Es un poco tedioso, pero si solo necesitas hacer algunos archivos, es bastante rápido.

87
28 окт. respuesta dada por Chris Barr 28 de octubre 2016-10-28 17:40 '16 a las 5:40 pm 2016-10-28 17:40

En OSX, puede usar la Utilidad de Discos para crear una imagen de disco duro / imagen de disco para evitar este problema y evitar otros problemas con el desarrollo en el sistema de archivos sin la insensibilidad de mayúsculas y minúsculas.

Ejecute la utilidad de disco, cree una nueva imagen de disco y use la siguiente configuración (o cámbiela a su gusto, pero guárdela en mayúsculas):

2019

37
03 окт. la respuesta es dada por el usuario1821510 03 oct. 2014-10-03 22:18 '14 a las 10:18 pm 2014-10-03 22:18

A veces es útil cambiar temporalmente la sensibilidad de los casos en Git. Dos posibles métodos:

Método 1:

git -c core.ignorecase=true checkout mybranch para deshabilitar la distinción entre mayúsculas y minúsculas para un solo comando de git -c core.ignorecase=true checkout mybranch . O más generalmente: git -c core.ignorecase= <<true or false>> <<command>> . (Gracias a VonC por sugerir esto en los comentarios).

Método 2:

Para cambiar una configuración por un período más largo (por ejemplo, si necesita ejecutar varios comandos antes de volver a cambiarla):

  1. git config core.ignorecase (devuelve la configuración actual, por ejemplo, false ).
  2. git config core.ignorecase <<true or false>> : establezca el nuevo parámetro deseado.
  3. ... Ejecutar varios otros comandos ...
  4. git config core.ignorecase <<false or true>> : devuelve el valor de configuración al valor anterior.
15
10 июля '18 в 14:05 2018-07-10 14:05 respondió a Steve Chambers el 10 de julio de '18 a las 2:05 pm 2018-07-10 14:05

1) Renombra el archivo name1.jpg a name1.jpg

2) arreglar el archivo eliminado Name.jpg

3) renombrar archivo name1.jpg a Name.jpg

4) agregar el archivo Name.jpg agregado a la confirmación anterior

 git add git commit --amend 
14
03 окт. respuesta dada razon 03 oct. 2016-10-03 22:13 '16 a las 10:13 pm 2016-10-03 22:13

Probé las siguientes soluciones de las otras respuestas, y no funcionaron:

Si su repositorio está alojado en GitHub, como el mío, puede cambiar el nombre del archivo en la fuente (GitHub.com) y forzar el cambio de nombre del archivo de arriba a abajo.

Las instrucciones a continuación dependen del tipo de archivo que intenta cambiar de nombre, es decir, del tipo de archivo que GitHub considera editable (código, texto, etc.) o no editable (imagen, binario, etc.) en un navegador .

  1. Visita GitHub.com
  2. Vaya a su repositorio en GitHub.com y seleccione la sucursal en la que trabaja
  3. Con la herramienta de navegación de archivos del sitio, navegue hasta el archivo que va a cambiar de nombre.
  4. GitHub te permite editar un archivo en un navegador?
    • a.) editable
      1. Haga clic en el icono "Editar este archivo" (parece un lápiz)
      2. Cambiar el nombre del archivo en la entrada del nombre del archivo de texto.
    • b) no editable
      1. Abra el botón "Descargar" en una nueva pestaña y guarde el archivo en su computadora.
      2. Renombra el archivo descargado
      3. En la pestaña anterior en GitHub.com, haga clic en el icono "Eliminar este archivo" (parece un bote de basura)
      4. Asegúrese de que el botón de branchname "Escribir directamente en branchname ramas de los branchname sucursales" esté seleccionado y haga clic en el botón "Confirmar cambios".
      5. En el mismo directorio en GitHub.com, haga clic en "Cargar archivos"
      6. Descarga el archivo renombrado desde tu computadora
  5. Asegúrese de que el botón de branchname "Escribir directamente en branchname ramas de los branchname sucursales" esté seleccionado y haga clic en el botón "Confirmar cambios".
  6. Localmente, emitir / recibir / tirar una rama
  7. Esta hecho
8
31 окт. La respuesta la da gmeben el 31 de octubre. 2017-10-31 21:22 '17 a las 21:22 2017-10-31 21:22

Mac OSX High Sierra 10.13 soluciona esto un poco. Simplemente cree una partición APFS virtual para sus proyectos git, de manera predeterminada, no tiene límite de tamaño y no ocupa espacio.

  1. En la Utilidad de Discos, haga clic en el botón + cuando se selecciona el Disco de Contenedor.
  2. Seleccione APFS (-s obligatorio) en el formato
  3. Llámalo Sensitive
  4. beneficio
  5. Opcional: cree una carpeta en Sensitive con el nombre git y ln -s/Volumes/Sensitive/git/Users/johndoe/git

Tu disco estará en /Volumes/Sensitive/

2019

He encontrado este problema varias veces en MacOS. Git es sensible a las mayúsculas y minúsculas, pero Mac solo retiene el caso

Alguien arregla el archivo: Foobar.java y después de unos días decide cambiarle el nombre a Foobar.java . Cuando saca el último código, falla con el The following untracked working tree files would be overwritten by checkout...

La única forma confiable en que he visto esta solución es:

  • git rm Foobar.java
  • Asegúrelo con un mensaje que no puede omitir git commit -m 'TEMP COMMIT!!'
  • Arrastrado
  • Esto provocará un conflicto que lo obligará a fusionar el conflicto, ya que su cambio lo ha eliminado, pero el otro cambio ha sido renombrado (de ahí el problema).
    • Acepta tu cambio, que es "eliminar"
    • git rebase --continue
  • Ahora deje su solución git rebase -i HEAD~2 y drop TEMP COMMIT!!
  • Confirme que el archivo ahora se llama Foobar.java
3
05 авг. Respuesta dada por Ashwin Jayaprakash 05 ago. 2016-08-05 20:23 '16 a las 20:23 2016-08-05 20:23

Cuando has hecho muchos cambios de nombre de archivos, y algunos de ellos simplemente están reemplazando el caso, es difícil recordar de qué se trata. manualmente "reubicación git", el archivo puede ser muy útil. Entonces, ¿qué haría yo en el proceso de cambiar el nombre del archivo? Sigue estos pasos:

  • borre todos los archivos y carpetas sin git a otra carpeta / repositorio.
  • corrige la carpeta de git vacía actual (esto se mostrará cuando se eliminen todos los archivos).
  • agrega todos los archivos a la carpeta fuente de git / repository.
  • Corrige la carpeta de git no vacía actual.

Esto eliminará todos los problemas al no intentar determinar a qué archivos o carpetas ha cambiado el nombre.

2
29 апр. Respuesta de Ricardo Virtudazo Jr 29 de abril. 2017-04-29 14:00 '17 a las 2 pm 2017-04-29 14:00