tipos tag sirve remove qué para oneline nos log hace existen etiquetas cuando creamos commits windows git newline core.autocrlf

windows - tag - ¿Por qué se muestra ''Actualizando el índice de Git''?



¿qué hace git log-oneline? (2)

Estoy usando Windows. Al organizar archivos obtengo este error.

Updating the Git index failed. A rescan will be automatically started to resynchronize git-gui.

seguido de una lista de archivos que se han convertido de LF a CRLF

Después de leer mucho sobre el problema CRLF / LF con el uso cruzado de Git, comprendo más o menos lo que está sucediendo, y estoy tratando de determinar qué configuración de autocrlf es mejor para mí, pero no puedo entender por qué Git dice que La actualización del índice falló. Tengo entendido que ha convertido los EOF, cuál es el problema y por qué me dice que la actualización del índice ha fallado. ¿Debo arreglar algo (que no sea elegir una configuración de autocrlf adecuada) o puedo simplemente continuar?

Luego tengo dos opciones Continuar y Desbloquear índice, ¿qué significan estos y cuál es el mejor curso de acción?


También me encontré con esto aunque mi configuración de core.autocrlf ya es false y core.safecrlf está desactivada. Sospecho que el culpable es la configuración de configuración diff.astextplain.textconv .

Cuando ejecuté git config --list , la siguiente línea se muestra en el resultado:

diff.astextplain.textconv=astextplain

No creo que esta configuración esté realmente relacionada con la advertencia / error, pero me inspiró para ver la conversión de texto que podría estar haciendo. Después de un poco de espeleología en línea y en mi repositorio, descubrí la siguiente línea en el archivo .gitattributes de mi repositorio:

* text=auto

[Probablemente obtuve el archivo .gitattributes de GitHub.]

Dado que solo la línea anterior no fue comentada en ella, y además que lidiar con conversiones ''automágicas'' de final de línea siempre ha sido un dolor de cabeza, opté por eliminar ese archivo de mi repositorio. Después de hacerlo, la puesta en escena de los mismos archivos ya no me provocó la advertencia / error "Actualización del índice de Git".


git config --global core.autocrlf false

Siempre he sido mi recomendación (ver " Git 1.6.4 beta en Windows (msysgit) - terminación de línea Unix o DOS ").

Sin embargo, en su caso, puede "Continuar", pero esta advertencia está allí para mencionar que la conversión de ciertos archivos podría no ser reversible:

core.safecrlf

Si es verdadero, hace que git compruebe si la conversión de CRLF es reversible cuando la conversión de fin de línea está activa. Git verificará si un comando modifica un archivo en el árbol de trabajo directa o indirectamente. Por ejemplo, si se compromete un archivo seguido de la extracción del mismo archivo, se obtendrá el archivo original en el árbol de trabajo. Si este no es el caso para la configuración actual de core.autocrlf , git rechazará el archivo.
La variable se puede establecer en "warn", en cuyo caso git solo advertirá sobre una conversión irreversible pero continuará la operación.

Si no desea ver esta advertencia, como se explica en este hilo , puede configurar core.safecrlf en false .

También puede esconder sus archivos a través del menú de herramientas de git gui, y agregar algunas opciones a esas herramientas con, por ejemplo, este archivo de configuración de git .
El interés es que, para cada herramienta, puede agregar:

guitool.<name>.norescan

No vuelva a explorar el directorio de trabajo para ver los cambios una vez que la herramienta finalice la ejecución.

¿Podría explicar un poco sobre el índice de desbloqueo?

Puede ver ese mensaje en el index.tcl git-gui : elimina el archivo index.lock que git-gui crea al manipular el índice.
Puede ver más en la página de documentación de "lockfile API" :

Exclusión mutua
Cuando $GIT_DIR/index.lock un nuevo archivo de índice, primero creamos un nuevo archivo $GIT_DIR/index.lock , escribimos los nuevos contenidos y lo $GIT_DIR/index destino final $GIT_DIR/index .
Intentamos crear el $GIT_DIR/index.lock con O_EXCL para que podamos notar y fallar cuando alguien más ya está tratando de actualizar el archivo de índice.