Parece que se está ejecutando otro proceso git en este repositorio

668

Estoy tratando de aprender a usar Git y he creado un pequeño proyecto con un archivo HTML, CSS y Javascript. Hice una rama de mi proyecto básicamente vacío y luego hice algunos cambios en mi código. Intenté organizar los cambios pero recibo el siguiente mensaje de error:

Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.

Por supuesto, me encontré con problemas al intentar comprometer mi proyecto vacío antes y simplemente abandoné git bash ya que no sabía cómo salir de donde había llegado de alguna manera.

¿Hay alguna manera de arreglar esto o debería comenzar un nuevo repositorio?

Matt Corby
fuente
1
Parece que definitivamente hay otro proceso ejecutando rn, posiblemente en otra pestaña de terminal.
Vincent Rodomista
Abra el administrador de tareas y vea qué más se está ejecutando. También es posible que pueda usar Process Explorer, si lo tiene instalado.
Tim Biegeleisen
Intente usar git bash, línea de comando o GUI, luego puede desbloquear el git bloqueado
SalindaKrish

Respuestas:

1299

Intente eliminar el index.lockarchivo en su .gitdirectorio.

rm -f .git/index.lock

Tales problemas generalmente ocurren cuando ejecuta dos gitcomandos simultáneamente; tal vez uno del símbolo del sistema y uno de un IDE.

Rohit Shedage
fuente
77
Recibí el siguiente error: rm: no se puede eliminar '.git / index.lock': dispositivo o recurso ocupado
Yuvraj Patil
8
eliminar conrm -f .git/index.lock
William Hampshire
Para CocoaPods, intenta eliminarlo Podfile.lock.
LinusGeffarth
1
También funcionó para mí, gracias. Me pregunto por qué esta respuesta aún no está marcada como aceptada. Secuencia de comandos: 1) buscar | grep '\ .lock $' 2) rm -f ./.git/index.lock
Ankush
55
Si no hay ningún index.lockarchivo allí, verifique si HEAD.lockeliminarlo resolvió el problema para mí.
Daniel Shatz
64

Utilice el siguiente comando en el directorio raíz de la aplicación. Esto eliminará el archivo index.lock y liberará el bloqueo activo.

rm .git/index.lock
MJ
fuente
También tuve que cerrar Sublime-Text porque tenía un complemento git. Otro IDE conectado a git probablemente tenga el mismo problema
nick carraway
31

Eliminar mi mensaje de confirmación funcionó para mí.

rm .git/COMMIT_EDITMSG

Entonces dijo.

fatal: no se puede bloquear la referencia 'HEAD': no ​​se puede crear '.git / refs / heads / [your-branch-name] .lock': el archivo existe.

Tenga en cuenta que el nombre de su sucursal puede ser diferente al mío. Puede eliminar este archivo de bloqueo haciendo;

rm .git/refs/heads/[your-branch-name].lock

Espero que esto ayude a alguien.

Ibn Rushd
fuente
3
Esto es lo que me ayudó, las otras respuestas no hicieron nada por mí.
CodyMace
1
Esto funcionó cuando intenté comprometerme con docker-compose en segundo plano.
John Spiteri
15

Ok, terminé haciendo que funcionara ejecutando '$ git rm .git / index.lock' ... Es extraño porque lo hice algunas veces antes sin resultado pero oye computadoras ¿verdad?

Matt Corby
fuente
55
No es necesario usarlo git rmaquí, solo rmes suficiente. index.lockno es un archivo destinado a ser rastreado por git.
Matthieu Moy
8

Esto me sucedió a mí y mientras sourcetree me decía que el archivo de bloqueo existe, no había tal archivo para que lo elimine. Así que simplemente revisé otra rama y luego volví a la rama original y noté que este cambio solucionó el problema.

Alex Sed
fuente
7

Es similar a los métodos anteriores, pero en mi caso tuve varios de esos

.git/refs/heads/<branch_name>.lock

y pude eliminar todo de una vez de esta manera

find -name "*.lock" -exec xargs rm {} \;
Akif
fuente
4

Para mí, el problema era más simple, esto estaba en el árbol de origen, así que no estoy seguro de cuánto se aplicará a las soluciones regulares, pero accidentalmente tuve que seleccionar mi rama maestra tratando de realizar una confirmación en lugar de mis cambios no confirmados.

Esto normalmente no sería un problema, pero ya había ingresado de manera preventiva un mensaje de confirmación para poder seguir lo que estaba haciendo para ese pequeño sprint en el que estaba.

Básicamente, comencé una confirmación en la rama no confirmada y accidentalmente estaba intentando iniciar otra confirmación en mi rama maestra.

Vrezh Gulyan
fuente
4

Si está utilizando CocoaPods y en algún momento falló una actualización o instalación (lo eliminó manualmente o algo así), intente

1) Eliminar el index.lockarchivo (en .git/index.lock)

2) Elimina tu Podfile.lockarchivo.

3) Haz un nuevo pod update

4) Intente emitir el comando git que estaba fallando (en mi caso fue a git add .)

Cumanzor
fuente
4

Si es usuario de Windows, habrá un error 'rm' is not recognized as an internal or external command. Eso es porque rm es un comando de Linux. Entonces, en Windows, puede usar a continuación para eliminar el index.lockarchivo dentro de la .gitcarpeta

del -f .git/index.lock
Indrajith Ekanayake
fuente
3

Puede estar sucediendo que su rama está dañada crear una nueva rama git branch #check branch. He creado una nueva sucursal y trabajando.

branch -b "main"
git checkout -b "main"  #main is new branch
git add .
git commit -m "all files"
git remote add origin #**YOUR REPO**  https://github.com/tarun-techmarbles/wp-dump-sql-git-push.git
git push origin main  #push with new branch 
Tarun Sharma
fuente
3

Aunque hay una alternativa arriba, pero eso no resolvió la mía. En mi caso, elimino el complemento "git" en ./zshrc y reinicio la computadora, luego el problema desaparece, supongo que el complemento zsh había hecho algo en conflicto con el comando git original.

Brady Huang
fuente
3

Recibí este error mientras pod update. Lo resolví eliminando el index.lockarchivo en cocoapodsel .gitdirectorio de.

rm -f /Users/my_user_name/.cocoapods/repos/master/.git/index.lock

Podría ayudar a alguien.

Haseeb Iqbal
fuente
2

use el siguiente comando en caso de que se enfrente. Parece que se está ejecutando otro proceso de git en este repositorio, por ejemplo, un editor abierto por 'git commit'. Asegúrese de que todos los procesos hayan finalizado e intente nuevamente. Si aún falla, un proceso de git puede haberse bloqueado en este repositorio anteriormente: elimine el archivo manualmente para continuar.

rm -f .git / index.lock

git reset y después del comando reset usa git status, git add y git commit -a o git commit -m "tu mensaje", git push origin master.

Naveen
fuente
2

rm -f .git/index.lockno ayudó, porque tenía un archivo bloqueado que no podía eliminarse. Entonces, index.locktambién había sido capturado por alguna aplicación.

Descargué una alternativa a Unlocker llamada Lock Hunter y eliminé ambos archivos. Gitlos capturó

CoolMind
fuente
2

Tengo los mismos problemas cuando traté de organizar el archivo en SourceTree.

Para resolver esto, vaya a la carpeta .git en el directorio del proyecto y elimine manualmente index.lock y listo.

MayankD
fuente
En realidad, encuentro en SourceTree que generalmente es suficiente esperar unos segundos e intentar nuevamente.
mate
2

En caso de que pueda ayudar a alguien más ... intenté con la línea de comandos rm -f .git/index.locky no funcionó (el terminal no mostró ningún error). Acabo de ir directamente a la carpeta .gity eliminar el index.lockarchivo.

Nota: la .gitcarpeta se encuentra en su repositorio raíz y está oculta. En mac: Cmd+ Shift+ .para ver archivos ocultos.

TomCobo
fuente
2

Para mí, la solución fue tan simple como cerrar mi IDE y luego retirarme. Un compañero de equipo mío había aceptado mi PR y fusionó el código a través de TFS. Eliminar los archivos .lock no funcionó.

Chloe Corrigan
fuente
2

Eliminar index.lockaquí:

<path to your repo>/.git/index.lock

Además, si su repositorio tiene submódulos, elimine todo index.lockaquí también:

<path to your repo>/.git/modules/<path to your submodule>/index.lock
Manabu Nakazawa
fuente
1

Traté de eliminar .git/indexpero no funcionó, termino desinstalando go y eliminando todas las carpetas que tienen gonombre, y luego instalando go nuevamente, ¡y funcionó!

John Balvin Arias
fuente
1

Para mí por cualquier motivo:

rm .git/index.lock

No funcionó, así que simplemente fui al archivo .git y lo eliminé manualmente, lo que funcionó fantásticamente.

Vadim F.
fuente
¿Cuál es la diferencia entre esta respuesta y la respuesta aceptada?
J. Doe
0

solo para aclarar, para aquellos que se preguntan por qué rm y del.

rm .git/index.lock - on a unix/linux system
del .git/index.lock - on a windows cmd prompt

podría agregar -fpara forzar la operación que funciona.

Ande Caleb
fuente
0

Me enfrenté al mismo problema. Tuve que hacer poco más para resolver esto. Primero eliminé y index.lockluego cloné código nuevo de la ubicación del repositorio git existente. Tenía mis cambios de código en una ubicación separada. Copié la .gitcarpeta y el .gitignorearchivo y pegué en la carpeta del código donde había realizado los cambios de código. Luego traté de comprometerme y presionar, funcionó sin problemas. Puede ser que esta información sea útil si su problema no lo hace con las soluciones dadas anteriormente.

Abhishek
fuente
0

Tuve el mismo problema al usar SourceTree . Pero no había ningún archivo index.lock en mi host en absoluto. He encontrado -refs.lock lleno de archivo, y después de eliminarlo, el problema se solucionó.

Vladimir
fuente
0

Me enfrenté al mismo problema, el problema fue que intenté empujar mi código con un xmlarchivo (utilizado como conjunto de datos) que tiene un tamaño de 1.3 gb, así que agregué estos archivos .gitignorey luego resolví el problema

Dulanga Heshan
fuente
0

Si termina aquí en función del título de la pregunta ("Parece que se está ejecutando otro proceso git en este repositorio"), tenga en cuenta que la respuesta aceptada no será directamente aplicable a usted si el mensaje en el título de esta pregunta está precedido por otro mensaje como el de abajo:

fatal: cannot lock ref 'HEAD': Unable to create '/<PATH>/<TO>/<REPO>/.git/refs/heads/<BRANCH>.lock': File exists.

En este caso, debe eliminar ese archivo (.lock) en lugar de .git / index.lock

derekbaker783
fuente