Ya existe un archivo de bloqueo en el repositorio, que bloquea esta operación para que no se complete

5 minutos de lectura

Avatar de usuario de Chrys
cris

Estoy trabajando en un proyecto ASP.NET Core. Estoy tratando de push un compromiso con mi rama usando GitHub Desktop. Pero cada vez que intento comprometerme, sigo recibiendo este error:

Ya existe un archivo de bloqueo en el repositorio, que impide que se complete esta operación.

Al buscar en Internet, la única solución que he encontrado es eliminar index.lock archivo dentro .git carpeta manualmente.

Pero cuando elimino este archivo, sigue apareciendo cada vez que intento confirmar, lo que me impide hacerlo. Ya intenté comprometerme desde Visual Studio pero también falló.

¿Alguien puede ayudarme?

  • Parece que algún otro proceso crea constantemente el archivo de bloqueo. Intente reiniciar su computadora. Pruebe también con un nuevo clon y compruebe si funciona en el nuevo repositorio clonado.

    – Elpie Kay

    3 de marzo de 2021 a las 2:36

Avatar de usuario de GigaTera
gigatera


esto me paso a mi tambien, solo borra el archivo llamado index. lock que está en la carpeta git. después de eliminarlo, intente volver a confirmarlo. resolvió mi problema

  • Paso 1: Ir a la carpeta deseada
  • Paso 2: Ir a las opciones de carpeta
  • Paso 3: Marque mostrar archivos/carpetas ocultos
  • Paso 4: se le mostrará una carpeta git, simplemente vaya y elimine el archivo index.lock desde allí y estará listo para confirmar nuevamente.

  • Respuesta fácil, lógica y resumida. Gracias.

    – Cetina Omrum

    10 de agosto de 2022 a las 22:05

Usos de Git index.lock saber que algún proceso de Git, tal vez este, si acaba de crear index.lock mismo, o quizás algún otro proceso de Git— está ocupado haciendo cosas con el repositorio que requieren bloquear el índice de Git. Cuando un Git crea con éxito este archivo de bloqueo, luego se ocupa de su negocio, actualizando varias bases de datos internas, hasta que termina. entonces elimina este archivo de bloqueo para indicar que está hecho, y otro Los comandos de Git ahora pueden comenzar, hacer sus cosas y terminar.

Si hay un bicho en su sistema Git, es posible que un comando Git cree index.lock, comienza a hacer su trabajo y luego falla, dejando atrás el archivo de bloqueo. En este caso, lo correcto es actualizar a un Git sin errores para que el problema no se repita, y también eliminar el index.lock archivo. (Puede hacer esto en cualquier orden, pero si el error persiste, algunos comandos de Git pueden dejar atrás el bloqueo falso). Debido a un conjunto de pruebas bastante extenso, este tipo de error es raro en Git en estos días, En los viejos tiempos, era más común, pero ahora casi nunca debería ocurrir.

Si tu la computadora misma falla (debido a un error que no es de Git, o la falla de energía, o lo que sea) mientras Git está en medio de una de estas operaciones, es posible que Git nunca tenga la oportunidad de eliminar el index.lock archivo. En este caso, sólo tiene que quitar el index.lock archivo manualmente. Sin embargo, después de un bloqueo de la computadora, otro partes de las bases de datos internas de Git podrían haber sido dañadas por el bloqueo, por lo que es aconsejable ejecutar git fsck. El git fsck El programa imprime una cantidad de mensajes incluso en sistemas saludables, así que no se alarme demasiado por varios mensajes de “confirmación pendiente” o “mancha pendiente”: estos son solo informativos. (En general e idealmente, su computadora nunca debería fallar en absoluto y su energía nunca debería fallar, y las personas no deberían morir congeladas en Texas en febrero de 2021, pero el mundo no siempre es ideal).

(Los sistemas de Windows a veces ven un mal comportamiento de algún software antivirus. Esto puede desaparecer por sí solo en algunos casos. Evito Windows, por lo que no tengo recomendaciones específicas aquí, aparte de “evitar Windows”).

Por último, hay un problema que últimamente se ha convertido en un problema común para algunas personas porque el almacenamiento en la nube es muy atractivo.1 Específicamente, si almacena un repositorio Git (el .git directorio) en algún tipo de sistema de almacenamiento en la nube, o incluso en una configuración de disco compartido o sistema de archivos compartidos a través de una máquina virtual, el competencia entre diferentes agentes que intentan sincronizar esta área de almacenamiento puede corromper su repositorio de Git, incluida la resurrección de archivos falsos index.lock archivos o incluso dañar las bases de datos internas de Git. ¡No hagas esto! Mantenga el Git repositorio en un área de disco local no compartida.


1Bueno, al menos superficialmente. Realmente hay ventajas, pero personalmente me suscribo a la Definición de Lamport de un sistema distribuido: Un sistema distribuido es aquel en el que la falla de una computadora que ni siquiera sabías que existía puede hacer que tu propia computadora quede inutilizable.

avatar de usuario de nyedidikeke
nyedidikeke

El index.lock Lo más probable es que el archivo guardado vuelva a aparecer porque GitHub Desktop u otro programa (por ejemplo, Visual Studio) o el proceso todavía lo está usando.

En escenarios raros, esto podría ser un error en su Git.

En caso de que no pueda identificar fácilmente al culpable y evitar el comportamiento de reaparición, debe considerar reiniciar su computadora y luego eliminar el index.lock antes de iniciar GitHub Desktop y/o su Visual Studio.

Como alternativa, puede considerar:

  • Cambios ocultos,
  • Múdate a otra sucursal,
  • Retroceder,
  • Aplicar alijo, y
  • Empuje de nuevo.

Hay una carpeta llamada HEAD.lock dentro de tu carpeta git.
Borrar y vuelva a intentar comprometerse. eso es trabajo para mi

¿Ha sido útil esta solución?