Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿Git dice que existe index.lock? Demuestra el propietario antes de borrar

El bloqueo puede pertenecer a un Git activo, ser residuo de un fallo, reaparecer por un hook o IDE, o indicar un repositorio no escribible. Resuelve la ruta real, identifica al titular y conserva el estado preparado antes de reparar.

Diagrama original para localizar, observar, clasificar y reparar Git index.lock.
Ilustración original: demuestra ruta y titular antes de borrar. Watch at Ease

index.lock protege una actualización del índice de Git; no es basura que deba borrarse al verla. El mismo mensaje puede significar escritor activo, residuo, recreación continua o fallo al reemplazar el índice.

Sigue la evidencia: ruta efectiva, estado preparado, proceso titular, reaparición y escritura. Luego aplica una sola reparación limitada.

Conserva el estado y resuelve la ruta real

Guarda el error, git status y git diff --cached --stat. No borres .git/index. Usa git rev-parse --path-format=absolute --git-path index.lock para obtener la ruta efectiva.

Registra existencia, propietario, permisos, tamaño y fecha. Git usa index.lock para construir un índice nuevo y después confirmarlo o revertirlo.

Demuestra qué proceso lo posee o lo recrea

Usa lsof sobre la ruta exacta en Linux/macOS y Process Explorer o Handle en Windows. Identifica proceso, cuenta y padre antes de detenerlo.

Si no hay titular, observa un solo reintento. Si el archivo vuelve enseguida, pausa el IDE, hook, monitor, agente o tarea y serializa las escrituras.

Borra solo un bloqueo obsoleto confirmado

Solo es obsoleto si la ruta es correcta, no hay titular, la operación terminó y no reaparece. Guarda el estado y elimina únicamente ese index.lock, no index, HEAD, refs ni otros bloqueos.

Ejecuta git status y reintenta una sola escritura. Confirma que el bloqueo desaparece y que git diff --cached conserva solo los cambios previstos.

Trata permisos y unlink como otro fallo

Si Git no puede crear, renombrar o eliminar el bloqueo, revisa propietario, escritura y sistema de archivos del directorio Git con el mismo usuario.

No uses sudo git ni chown recursivo como solución genérica. Repara solo el usuario, montaje, antivirus o política demostrado por la evidencia.

Cierra con una prueba reproducible

Ejecuta la escritura original desde un solo terminal; comprueba código de salida, desaparición del bloqueo, status y diff preparado.

En automatización, serializa comandos que escriben el mismo índice y registra inicio, fin y ruta del repositorio.

Árbol original que separa un escritor activo de un bloqueo obsoleto sin titular.
Ilustración original: los casos activo, obsoleto y no escribible requieren reparaciones distintas. Watch at Ease