Un altro processo git sembra essere in esecuzione in questo repository


668

Sto cercando di imparare come usare Git e ho creato un piccolo progetto con un file HTML, CSS e Javascript. Ho fatto un ramo dal mio progetto sostanzialmente vuoto e poi ho apportato alcune modifiche al mio codice. Ho provato a mettere in scena le modifiche ma ricevo il seguente messaggio di errore:

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.

Certo, mi sono imbattuto in problemi nel tentativo di impegnare il mio progetto vuoto prima e ho appena lasciato Git Bash poiché non sapevo come uscire da dove ero arrivato in qualche modo.

C'è un modo per me di risolvere questo problema o dovrei semplicemente avviare un nuovo repository?


1
Sembra che ci sia sicuramente un altro processo in esecuzione rn, forse in un'altra scheda terminale?
Vincent Rodomista,

Apri Task Manager e vedi cos'altro è in esecuzione. Potresti anche essere in grado di utilizzare Process Explorer, se lo hai installato.
Tim Biegeleisen,

Prova a usare git bash, la riga di comando o la GUI, quindi puoi sbloccare git bloccato
SalindaKrish

Risposte:


1299

Prova a eliminare il index.lockfile nella tua .gitdirectory.

rm -f .git/index.lock

Tali problemi si verificano generalmente quando si eseguono due gitcomandi contemporaneamente; forse uno dal prompt dei comandi e uno da un IDE.


7
Ho ricevuto il seguente errore: rm: impossibile rimuovere '.git / index.lock': dispositivo o risorsa occupata
Yuvraj Patil,

8
rimuovere conrm -f .git/index.lock
William Hampshire

Per CocoaPods, prova a rimuoverlo Podfile.lock.
LinusGeffarth,

1
Ha funzionato anche per me, grazie. Mi chiedo perché questa risposta non sia ancora stata accettata. Sequenza di comandi: 1) trova | grep '\ .lock $' 2) rm -f ./.git/index.lock
Ankush

5
Se non ci sono index.lockfile lì, controlla HEAD.lock· Rimuovendolo ho risolto il problema per me.
Daniel Shatz,

64

Utilizzare il comando seguente nella directory principale dell'applicazione. Ciò eliminerà il file index.lock e rilascerà il blocco attivo.

rm .git/index.lock

Ho anche dovuto chiudere Sublime-Text perché aveva un plugin git. Un altro IDE collegato a Git ha probabilmente lo stesso problema
Nick Carraway,

31

L'eliminazione del mio messaggio di commit ha funzionato per me.

rm .git/COMMIT_EDITMSG

Quindi ha detto.

fatale: impossibile bloccare ref 'HEAD': impossibile creare '.git / refs / heads / [nome-ramo] .lock': il file esiste.

Nota che il nome della tua filiale potrebbe essere diverso dal mio. È possibile eliminare questo file di blocco facendo;

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

Spero che questo aiuti qualcuno.


3
questo è ciò che mi ha aiutato, le altre risposte non hanno fatto nulla per me.
CodyMace,

1
Funzionava quando avevo tentato di eseguire il commit con la finestra mobile componi in background.
John Spiteri,

15

Ok, ho finito per farlo funzionare eseguendo '$ git rm .git / index.lock' ... È strano perché l'ho fatto qualche volta prima senza risultati ma hey computer giusto?


5
Non è necessario utilizzare git rmqui, rmè sufficiente. index.locknon è un file destinato a essere tracciato da git.
Matthieu Moy,

8

Questo è successo a me e mentre sourcetree continuava a dirmi che esiste il file di blocco, non c'era un file simile da rimuovere. Quindi ho appena verificato un altro ramo e poi sono tornato al ramo originale e ho notato che questa modifica ha risolto il problema.


7

È simile ai metodi precedenti ma nel mio caso ne ho avuti diversi

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

e in questo modo è stato possibile rimuovere tutto in una volta

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

4

Per me il problema era più semplice, questo era nella struttura dei sorgenti, quindi non sono sicuro di quanto si applicherà alle soluzioni normali, ma ho accidentalmente selezionato il mio ramo master che cercava di effettuare un commit anziché le mie modifiche non confermate.

Normalmente questo non sarebbe un problema, ma avevo già inserito preventivamente un messaggio di commit in modo da poter tenere traccia di ciò che stavo facendo per quel piccolo sprint che stavo facendo.

Fondamentalmente, ho iniziato un commit sul ramo senza commit e stavo cercando accidentalmente di iniziare un altro commit sul mio ramo master.


4

Se stai usando CocoaPods e ad un certo punto hai fallito un aggiornamento o un'installazione (ucciso manualmente o qualcosa del genere), prova

1) Rimozione del index.lockfile (in .git/index.lock)

2) Rimuovi il tuo Podfile.lockfile.

3) Fai un nuovo pod update

4) Prova a dare il comando git che non ha funzionato (nel mio caso era a git add .)


4

Se sei un utente di Windows ci sarà un errore 'rm' is not recognized as an internal or external command. Questo perché rm è un comando Linux. Quindi in Windows, puoi usare di seguito per rimuovere il index.lockfile all'interno della .gitcartella

del -f .git/index.lock

3

Può succedere che il tuo ramo sia danneggiato crea un nuovo ramo git branch #check branch. Ho creato una nuova filiale e lavorare.

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

Anche se c'è un'alternativa sopra, ma questo non ha risolto il mio. Nel mio caso, elimino il plug-in "git" in ./zshrc e riavvio il computer, quindi il problema è scomparso, immagino che il plug-in zsh abbia fatto qualcosa in conflitto con il comando git originale.


3

Ho avuto questo errore mentre pod update. Ho risolto cancellando il index.lockfile in cocoapods's .gitdirectory.

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

Potrebbe aiutare qualcuno.


2

usa il seguente comando nel caso in cui ti trovi di fronte Un altro processo git sembra essere in esecuzione in questo repository, ad esempio un editor aperto da 'git commit'. Assicurati che tutti i processi siano terminati, quindi riprova. Se il problema persiste, è possibile che un processo git si sia bloccato in precedenza in questo repository: rimuovere il file manualmente per continuare.

rm -f .git / index.lock

git reset e dopo il comando reset usano git status, git add e git commit -a o git commit -m "il tuo messaggio", git push origin master.


2

rm -f .git/index.locknon ha aiutato, perché avevo un file bloccato che non poteva essere cancellato. Così,index.lock era stato anche catturato da alcune applicazioni.

Ho scaricato un'alternativa a Unlocker chiamato Lock Hunter e cancellato entrambi i file. Gitcatturati.


2

Ho riscontrato gli stessi problemi quando ho provato a mettere in scena il file in SourceTree.

Per risolvere questo, vai alla cartella .git nella directory del progetto ed elimina manualmente index.lock e il gioco è fatto.


In realtà trovo in SourceTree che di solito è sufficiente attendere qualche secondo e riprovare.
matt

2

Nel caso in cui possa aiutare qualcun altro ... Ho provato con la riga di comando rm -f .git/index.locke non ha funzionato (il terminale non ha mostrato alcun errore). Sono appena andato direttamente alla cartella .gited eliminare il index.lockfile.

Nota: la .gitcartella si trova nel repository di root ed è nascosta. In mac: Cmd+ Shift+ .per vedere i file nascosti.


2

Per me la soluzione era semplice come chiudere il mio IDE e poi fare il check out. Un mio compagno di squadra aveva accettato il mio PR e aveva unito il codice tramite TFS. La rimozione dei file .lock non ha funzionato.


2

Elimina index.lockqui:

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

Inoltre, se il tuo repository ha sottomoduli, elimina anche tutto index.lockqui:

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

1

Ho provato a cancellare .git/indexma non ha funzionato, ho finito per disinstallare go e rimuovere tutte le cartelle che hanno il gonome, quindi installare di nuovo go, e funziona!


1

Per me per qualsiasi motivo:

rm .git/index.lock

Non ha funzionato, quindi sono andato al file .git e l'ho eliminato manualmente, il che ha funzionato in modo fantastico.


qual è la differenza tra questa risposta e la risposta accettata?
J. Doe,

0

solo per chiarimenti, per coloro che si chiedono perché rm e del.

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

potresti aggiungere -fper forzare l'operazione che funziona.


0

Ho affrontato lo stesso problema. Ho dovuto fare poco altro per risolvere questo problema. Prima ho cancellato, index.lockquindi ho clonato il nuovo codice dalla posizione del repository git esistente. Ho avuto le mie modifiche al codice in una posizione separata. Ho copiato la .gitcartella e il .gitignorefile e incollato nella cartella del codice in cui avevo apportato modifiche al codice. Poi ho provato a impegnarmi e spingere, ha funzionato senza intoppi. Può essere che questa informazione sia utile se il tuo problema non risolve le soluzioni sopra indicate.


0

Ha avuto lo stesso problema usando SourceTree . Ma sul mio host non c'erano file index.lock . Ho trovato il file packed-refs.lock e, dopo averlo eliminato, il problema è stato risolto.


0

ho riscontrato lo stesso problema, il problema è stato che ho provato a inviare il mio codice con un xmlfile (utilizzato come set di dati) che ha una dimensione di 1,3 GB, quindi aggiungo questi file .gitignoree quindi ho risolto il problema


0

Se finisci qui in base al titolo della domanda ("Un altro processo git sembra essere in esecuzione in questo repository"), nota che la risposta accettata non sarà direttamente applicabile a te se il messaggio nel titolo di questa domanda è preceduto da un altro messaggio come quello qui sotto:

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

In questo caso, è necessario eliminare quel file (.lock) anziché .git / index.lock

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.