Outro processo git parece estar em execução neste repositório

667

Estou tentando aprender a usar o Git e criei um pequeno projeto com um arquivo HTML, CSS e Javascript. Fiz uma ramificação do meu projeto basicamente vazio e depois fiz algumas alterações no meu código. Tentei organizar as alterações, mas recebo a seguinte mensagem de erro:

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.

É verdade que tive problemas ao tentar confirmar meu projeto vazio anteriormente e acabei de sair do git bash, pois não sabia como sair de onde havia chegado.

Existe alguma maneira de corrigir isso ou devo apenas iniciar um novo repositório?

Matt Corby
fonte
1
Parece que há definitivamente outro processo executando o rn, possivelmente em outra guia do terminal?
Vincent Rodomista
Abra o gerenciador de tarefas e veja o que mais está sendo executado. Você também pode usar o Process Explorer, se o tiver instalado.
Tim Biegeleisen
Tente usar o git bash, a linha de comando ou a GUI para desbloquear o git bloqueado.
SalindaKrish 27/03

Respostas:

1296

Tente excluir o index.lockarquivo no seu .gitdiretório.

rm -f .git/index.lock

Esses problemas geralmente ocorrem quando você executa dois gitcomandos simultaneamente; talvez um no prompt de comando e outro no IDE.

Rohit Shedage
fonte
7
Eu tenho seguinte erro: rm: não é possível remover '.git / index.lock': dispositivo ou recurso ocupado
Yuvraj Patil
8
remover comrm -f .git/index.lock
William Hampshire
Para CocoaPods, tente remover Podfile.lock.
LinusGeffarth
1
Trabalhou para mim também, obrigado. Eu me pergunto por que essa resposta ainda não está marcada como aceita. Sequência de comandos: 1) find | Você pode usar o seguinte comando: grep '\ .lock $' 2) rm -f ./.git/index.lock
Ankush
4
Se não houver index.lockarquivo, verifique: HEAD.lock· Removê-lo resolveu o problema para mim.
Daniel Shatz
64

Use o comando abaixo no diretório raiz do aplicativo. Isso excluirá o arquivo index.lock e liberará o bloqueio ativo.

rm .git/index.lock
MJ
fonte
Eu também tive que fechar o Sublime-Text porque ele tinha um plugin git. Outra IDE ligado ao git provavelmente tem o mesmo problema
nick Carraway
31

A exclusão da minha mensagem de confirmação funcionou para mim.

rm .git/COMMIT_EDITMSG

Então disse.

fatal: não é possível bloquear ref 'HEAD': Não é possível criar '.git / refs / heads / [nome-do-seu-ramo] .lock': O arquivo existe.

Observe que o nome da sua filial pode ser diferente do meu. Você pode excluir este arquivo de bloqueio fazendo;

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

Espero que isso ajude alguém.

Ibn Rushd
fonte
3
Foi isso que me ajudou, as outras respostas não fizeram nada por mim.
CodyMace
1
Isso funcionou quando tentei me comprometer com o docker-compor em segundo plano.
John Spiteri
15

Ok, acabei fazendo com que funcionasse executando '$ git rm .git / index.lock' ... É estranho porque fiz isso algumas vezes antes sem sucesso, mas ei computadores, certo?

Matt Corby
fonte
5
Não há necessidade de usar git rmaqui, apenas rmé suficiente. index.locknão é um arquivo que deve ser rastreado pelo git.
Matthieu Moy #
8

Isso aconteceu comigo e, embora o sourcetree continuasse me dizendo que o arquivo de bloqueio existe, não havia esse arquivo para eu remover. Acabei de fazer check-out de outra ramificação e, em seguida, retornei à ramificação original e percebi que essa alteração corrigia o problema.

Alex Sed
fonte
7

É semelhante aos métodos acima, mas no meu caso eu tinha vários desses

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

e foi capaz de remover tudo de uma vez dessa maneira

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

Para mim, o problema era mais simples, isso estava na árvore de origem, então não tenho certeza do quanto isso se aplicará a soluções regulares, mas acidentalmente selecionei minha ramificação mestre tentando fazer uma confirmação em vez de minhas alterações não confirmadas.

Isso normalmente não seria um problema, mas eu já havia inserido preventivamente uma mensagem de confirmação para poder rastrear o que estava fazendo naquele pequeno sprint em que estava.

Basicamente, iniciei um commit no ramo não confirmado e acidentalmente estava tentando iniciar outro commit no meu ramo principal.

Vrezh Gulyan
fonte
4

Se você estiver usando o CocoaPods e, em algum momento, danificou uma atualização ou instalação (a matou manualmente ou algo assim), tente

1) Removendo o index.lockarquivo (pol .git/index.lock)

2) Remova seu Podfile.lockarquivo.

3) Faça um novo pod update

4) Tente emitir o comando git que estava falhando (no meu caso, era a git add .)

Cumanzor
fonte
4

Se você é usuário do Windows , haverá um erro 'rm' is not recognized as an internal or external command. Isso porque rm é um comando do Linux. Então, no Windows, você pode usar abaixo para remover o index.lockarquivo dentro da .gitpasta

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

Pode estar acontecendo que sua ramificação esteja corrompida, crie uma nova ramificação git branch #check branch. Eu criei um novo ramo e trabalhando.

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
fonte
3

Embora exista uma alternativa acima, mas isso não resolveu a minha. No meu caso, excluo o plug-in "git" em ./zshrc e reinicio o computador e o problema desaparece. Acho que o plug-in zsh fez algo em conflito com o comando git original.

Brady Huang
fonte
3

Eu recebi esse erro enquanto pod update. Eu o resolvi excluindo o index.lockarquivo no diretório cocoapods's .git.

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

Isso pode ajudar alguém.

Haseeb Iqbal
fonte
2

use o comando a seguir caso esteja enfrentando Outro processo git parece estar em execução neste repositório, por exemplo, um editor aberto por 'git commit'. Verifique se todos os processos foram encerrados e tente novamente. Se ainda assim falhar, um processo git pode ter travado neste repositório anteriormente: remova o arquivo manualmente para continuar.

rm -f .git / index.lock

Os comandos git reset e after reset usam o status git, git add e git commit -a ou git commit -m "sua mensagem", mestre de origem do git push.

Naveen
fonte
2

rm -f .git/index.locknão ajudou, porque eu tinha um arquivo bloqueado que não pôde ser excluído. Então, index.locktambém havia sido capturado por algum aplicativo.

Eu baixei uma alternativa para o Unlocker chamada Lock Hunter e excluí os dois arquivos. Gitcapturou-os.

CoolMind
fonte
2

Eu tenho os mesmos problemas enfrentados quando tentei o arquivo em estágios no SourceTree.

Para resolver isso, vá para a pasta .git no diretório do projeto e exclua manualmente index.lock e pronto.

MayankD
fonte
Na verdade, eu acho no SourceTree que geralmente é suficiente aguardar alguns segundos e tentar novamente.
Matt
2

Caso possa ajudar outra pessoa ... Tentei com linha de comando rm -f .git/index.locke não funcionou (o terminal não mostrou nenhum erro). Acabei de ir diretamente para a pasta .gite excluir o index.lockarquivo.

Nota: a .gitpasta está localizada no seu repositório raiz e está oculta. No mac: Cmd+ Shift+ .para ver arquivos ocultos.

TomCobo
fonte
2

Para mim, a solução era tão simples quanto fechar meu IDE e depois fazer o check-out. Um colega meu havia aceitado meu PR e fundido o código via TFS. A remoção dos arquivos .lock não funcionou.

Chloe Corrigan
fonte
2

Excluir index.lockaqui:

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

Além disso, se o seu repositório tiver submódulos, exclua tudo index.lockaqui também:

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

Tentei excluir, .git/indexmas não funcionou, acabei desinstalando o go e removendo todas as pastas com o gonome e, em seguida, instalando o go novamente, e ele funcionou!

John Balvin Arias
fonte
1

Para mim, por qualquer motivo:

rm .git/index.lock

Não funcionou, então fui ao arquivo .git e o excluí manualmente, o que funcionou de maneira fantástica.

Vadim F.
fonte
Qual é a diferença entre esta resposta e a resposta aceita?
J. Doe
0

apenas para esclarecimento, para aqueles que se perguntam por que rm e del.

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

você pode adicionar -fpara forçar a operação que funciona.

Ande Caleb
fonte
0

Eu enfrentei o mesmo problema. Eu tive que fazer pouco mais para resolver isso. Primeiro eu apaguei e index.lockdepois clonei o código novo do local do repositório git existente. Eu tive minhas alterações de código em local separado. Copiei .gitpasta e .gitignorearquivo e colei na pasta de código onde fiz as alterações de código. Então eu tentei cometer e empurrar, funcionou sem problemas. Pode ser que essa informação seja útil se o seu problema não aparecer nas soluções acima.

Abhishek
fonte
0

Teve o mesmo problema ao usar o SourceTree . Mas não havia nenhum arquivo index.lock no meu host. Eu encontrei -refs.lock embalado arquivo, e depois de excluí-lo, o problema foi resolvido.

Vladimir
fonte
0

Eu enfrentei o mesmo problema, o problema foi que eu tentei enviar meu código com um xmlarquivo (usado como um conjunto de dados) com tamanho de 1,3 GB, então adiciono esses arquivos .gitignoree resolvo o problema

Dulanga Heshan
fonte
0

Se você terminar aqui com base no título da pergunta ("Outro processo git parece estar em execução neste repositório"), observe que a resposta aceita não será diretamente aplicável a você se a mensagem no título da pergunta for precedida por outra mensagem como o abaixo:

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

Nesse caso, você deve excluir esse arquivo (.lock) em vez de .git / index.lock

derekbaker783
fonte