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?


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.


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

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.


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?


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.


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 {} \;

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.


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 .)


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

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 

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.


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.


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.


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.


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.


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.


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.


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

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!


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.


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.


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.


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.


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


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.