El archivo index.lock de Git existe cuando intento confirmar, pero no puedo eliminar el archivo

4 minutos de lectura

avatar de usuario de asahi
asahi

Cuando hago ‘git commit’, obtengo lo siguiente:

fatal: Unable to create 'project_path/.git/index.lock': File exists.

Sin embargo, cuando hago ls project_path/.git/index.lock me dice que el archivo no existe. ¿Qué tengo que hacer? También me di cuenta de que project_path/.git es propiedad de raíz y no estoy seguro si eso tiene algo que ver con el problema que estoy encontrando.

La versión de Git es 1.7.5.4


Parece que el problema probablemente fue otro proceso que estaba ejecutando, que estaba escribiendo (sin que yo lo supiera) en el directorio del proyecto. Reinicié mi máquina y luego no tuve problemas para comprometerme.

  • Muy bien podría ser un problema de permisos en el que Git asume que, dado que no puede crear el archivo, ya existe. ¿Ha intentado tomar posesión del directorio o ejecutar su comando usando Sudo?

    usuario849425

    14 de febrero de 2012 a las 19:10

  • Creo que su explicación sobre otra aplicación que accede al repositorio de git es correcta. Tuve el mismo problema durante una rebase. Gitx estaba corriendo. Una vez que lo dejé, git funcionó bien.

    – La OMS

    12 de marzo de 2013 a las 14:58

  • @asahi: ¿Quizás quieras aceptar una respuesta? Esto ayudará a los futuros lectores.

    – MERosa

    03/08/2015 a las 14:31

  • Posible duplicado de Git – fatal: no se puede crear ‘/ruta/mi_proyecto/.git/index.lock’: el archivo existe.

    – Kristján

    4 de diciembre de 2015 a las 15:56

  • @asahi: puede publicar el contenido de su edición (que fue la solución) como respuesta y luego aceptarlo. (Aunque la solución más general que ‘reiniciar la máquina’ es que otro proceso estaba accediendo al directorio; reiniciar solo corta el nudo gordiano de tratar de averiguar cuál y por qué. 🙂 En mi caso, fue mi IDE). De todos modos, las personas frecuentemente responden sus propias preguntas cuando encuentran sus propias soluciones, lo cual hiciste.

    – Wilson F.

    13 de enero de 2016 a las 19:49

Andrei Epure está contratando el avatar de usuario
Andrei Epure está contratando

Para ventanas:

  • Desde una consola PowerShell abierta como administrador, intente
> rm -Force ./.git/index.lock
  • Si eso no funciona, debe eliminar todos los procesos de git.exe
> taskkill /F /IM git.exe
SUCCESS: The process "git.exe" with PID 20448 has been terminated.
SUCCESS: The process "git.exe" with PID 11312 has been terminated.
SUCCESS: The process "git.exe" with PID 23868 has been terminated.
SUCCESS: The process "git.exe" with PID 27496 has been terminated.
SUCCESS: The process "git.exe" with PID 33480 has been terminated.
SUCCESS: The process "git.exe" with PID 28036 has been terminated.
> rm -Force ./.git/index.lock

  • El parámetro no se puede procesar porque el nombre del parámetro ‘f’ es ambiguo.

    – 3 hoyos

    7 febrero 2018 a las 22:21

  • gracias, @MikePalmice, actualicé a -Force. Parece que cambiaron la API

    – Andrei Epure está contratando

    13 de febrero de 2018 a las 10:21

  • Gracias, esto funciona perfecto para mí, el taskkill luego hice la fuerza que funcionó 🙂 gracias hombre. @AndreiEpure

    –Bryan Labuschagne

    6 de mayo de 2021 a las 9:41

  • Aunque se supone que mi VS ni siquiera debe acceder a esos repositorios, este fue el problema de todos modos al reorganizar con SourceTree.

    – Kajetan Abt

    21 de marzo de 2016 a las 11:14

  • Gracias, el problema sigue ahí con la Actualización 3.

    – Elger Mensonides

    5 de diciembre de 2016 a las 11:03

  • Cerrar Visual Studio también funciona (se eliminó el archivo index.lock).

    – misterbee

    4 sep 2019 a las 17:45

intentar

rm -f ./.git/index.lock

si no tiene ningún otro proceso de git en ejecución, simplemente elimine el archivo index.lock del proyecto respectivo.

  • Trabajó en el entorno de mi mac.

    – Adam Hurwitz

    20 de noviembre de 2018 a las 20:45

Avatar de usuario de Peter Mortensen
Pedro Mortensen

  1. compruebe si el proceso de Git aún se está ejecutando (ps -ef | grep git)
  2. si no, elimine el archivo bloqueado
  3. en caso afirmativo, elimine el proceso de Git al principio.

  • Trabajó en el entorno de mi mac.

    – Adam Hurwitz

    20 de noviembre de 2018 a las 20:45

Avatar de usuario de Gulzar
gulzar

  1. Cierre todas las ventanas que puedan afectar este archivo .git/index.lock
  2. Elimine el archivo .git/index.lock.
  3. Abra su editor de línea de comandos y cd a la ubicación de sus archivos git.

(Si el archivo se crea, simplemente desde cd en esa ubicación, entonces el problema es su editor. Cierre su editor. No use este editor nuevamente para esta tarea. Abra un tipo diferente de editor: Windows Power Shell o simplemente cmd. Ahora puedes usar los comandos de git para continuar)

¿Ha sido útil esta solución?