In diesem Repository scheint ein anderer Git-Prozess zu laufen

663

Ich versuche zu lernen, wie man Git benutzt und habe ein kleines Projekt mit einer HTML-, CSS- und Javascript-Datei erstellt. Ich habe einen Zweig aus meinem im Grunde leeren Projekt gemacht und dann einige Änderungen an meinem Code vorgenommen. Ich habe versucht, die Änderungen bereitzustellen, erhalte jedoch die folgende Fehlermeldung:

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.

Zugegeben, ich hatte Probleme, mein leeres Projekt früher festzuschreiben, und habe einfach mit git bash aufgehört, da ich nicht wusste, wie ich rauskommen sollte, wo ich irgendwie hingekommen war.

Gibt es eine Möglichkeit für mich, dies zu beheben, oder sollte ich einfach ein neues Repository starten?

Matt Corby
quelle
1
Es scheint, als würde definitiv ein anderer Prozess ausgeführt, möglicherweise in einem anderen Terminal-Tab?
Vincent Rodomista
Öffnen Sie den Task-Manager und sehen Sie, was noch läuft. Möglicherweise können Sie auch den Prozess-Explorer verwenden, wenn Sie diesen installiert haben.
Tim Biegeleisen
Versuchen Sie es mit Git Bash, Command Line oder GUI, dann können Sie das gesperrte Git entsperren
SalindaKrish

Antworten:

1281

Versuchen Sie, die index.lockDatei in Ihrem .gitVerzeichnis zu löschen .

rm -f .git/index.lock

Solche Probleme treten im Allgemeinen auf, wenn Sie zwei gitBefehle gleichzeitig ausführen . Vielleicht eine von der Eingabeaufforderung und eine von einer IDE.

Rohit Shedage
quelle
7
Ich habe folgenden Fehler erhalten: rm: '.git / index.lock' kann nicht entfernt werden: Gerät oder Ressource beschäftigt
Yuvraj Patil
8
entfernen mitrm -f .git/index.lock
William Hampshire
Versuchen Sie bei CocoaPods zu entfernen Podfile.lock.
LinusGeffarth
1
Hat auch für mich gearbeitet, danke. Ich frage mich, warum diese Antwort noch nicht als akzeptiert markiert ist. Befehlsfolge: 1) find | grep '\ .lock $' 2) rm -f ./.git/index.lock
Ankush
4
Wenn dort keine index.lockDatei vorhanden ist, suchen Sie nach HEAD.lock· Durch Entfernen wurde das Problem für mich behoben.
Daniel Shatz
64

Verwenden Sie den folgenden Befehl im Stammverzeichnis der Anwendung. Dadurch wird die Datei index.lock gelöscht und die aktive Sperre aufgehoben.

rm .git/index.lock
MJ
quelle
Ich musste auch Sublime-Text schließen, weil es ein Git-Plugin hatte. Eine andere IDE, die mit Git verbunden ist, hat wahrscheinlich das gleiche Problem
Nick Carraway
31

Das Löschen meiner Commit-Nachricht hat bei mir funktioniert.

rm .git/COMMIT_EDITMSG

Dann hieß es.

fatal: Ref 'HEAD' kann nicht gesperrt werden: '.git / refs / Heads / [Name Ihres Zweigs] .lock' kann nicht erstellt werden: Datei existiert.

Beachten Sie, dass sich Ihr Filialname möglicherweise von meinem unterscheidet. Sie können diese Sperrdatei löschen, indem Sie Folgendes tun:

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

Hoffe das hilft jemandem.

Ibn Rushd
quelle
3
Das hat mir geholfen, die anderen Antworten haben nichts für mich getan.
CodyMace
1
Dies funktionierte, als ich versucht hatte, mit Docker-Compose im Hintergrund zu verpflichten.
John Spiteri
15

Ok, ich habe es zum Laufen gebracht, indem ich '$ git rm .git / index.lock' ausgeführt habe ... Es ist komisch, weil ich das ein paar Mal zuvor ohne Erfolg gemacht habe, aber hey Computer, oder?

Matt Corby
quelle
5
Keine Notwendigkeit, git rmhier zu verwenden , ist nur rmausreichend. index.lockist keine Datei, die von git verfolgt werden soll.
Matthieu Moy
8

Dies passierte mir und während Sourcetree mir immer wieder mitteilte, dass die Sperrdatei existiert, gab es keine solche Datei, die ich entfernen konnte. Also habe ich gerade einen anderen Zweig ausgecheckt und bin dann zum ursprünglichen Zweig zurückgekehrt und habe festgestellt, dass diese Änderung das Problem behoben hat.

Alex Sed
quelle
7

Es ist ähnlich wie oben beschrieben, aber in meinem Fall hatte ich mehrere davon

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

und konnte auf diese Weise alles auf einmal entfernen

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

Für mich war das Problem einfacher, dies war im Quellbaum, daher bin ich mir nicht sicher, wie viel es für reguläre Lösungen gelten wird, aber ich hatte versehentlich meinen Hauptzweig ausgewählt, um ein Commit durchzuführen, anstatt meine nicht festgeschriebenen Änderungen.

Dies wäre normalerweise kein Problem, aber ich hatte bereits präventiv eine Commit-Nachricht eingegeben, um zu verfolgen, was ich für den kleinen Sprint tat, an dem ich teilnahm.

Grundsätzlich habe ich ein Commit für den nicht festgeschriebenen Zweig gestartet und versehentlich versucht, ein weiteres Commit für meinen Hauptzweig zu starten.

Vrezh Gulyan
quelle
4

Wenn Sie CocoaPods verwenden und irgendwann ein Update oder eine Installation verpfuscht haben (manuell beendet oder so), versuchen Sie es

1) Entfernen der index.lockDatei (in .git/index.lock)

2) Entfernen Sie Ihre Podfile.lockDatei.

3) Mach ein neues pod update

4) Versuchen Sie, den fehlgeschlagenen Befehl git auszugeben (in meinem Fall war es a git add .)

cumanzor
quelle
4

Wenn Sie Windows- Benutzer sind, tritt ein Fehler auf 'rm' is not recognized as an internal or external command. Das liegt daran, dass rm ein Linux-Befehl ist. In Windows können Sie unten die index.lockDatei im .gitOrdner entfernen

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

Es kann vorkommen, dass Ihr Zweig beschädigt ist. Erstellen Sie einen neuen Zweig git branch #check branch. Ich habe eine neue Niederlassung geschaffen und arbeite.

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

Es gibt zwar eine Alternative oben, aber die hat meine nicht gelöst. In meinem Fall lösche ich das "git" -Plugin in ./zshrc und starte den Computer neu, dann ist das Problem behoben. Ich denke, das zsh-Plugin hat einen Konflikt mit dem ursprünglichen git-Befehl verursacht.

Brady Huang
quelle
3

Ich habe diesen Fehler während bekommen pod update. Ich löste es durch das Löschen von index.lockDateien in cocoapods‚s - .gitVerzeichnis.

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

Es könnte jemandem helfen.

Haseeb Iqbal
quelle
2

Verwenden Sie den folgenden Befehl, wenn Sie vor einem anderen Git-Prozess stehen, der in diesem Repository ausgeführt wird, z. B. ein Editor, der durch 'Git Commit' geöffnet wurde. Bitte stellen Sie sicher, dass alle Prozesse beendet sind, und versuchen Sie es erneut. Wenn dies immer noch fehlschlägt, ist möglicherweise ein Git-Prozess in diesem Repository früher abgestürzt: Entfernen Sie die Datei manuell, um fortzufahren.

rm -f .git / index.lock

git reset und nach dem reset-Befehl git status, git add und git commit -a oder git commit -m "Ihre Nachricht", git push origin master.

Naveen
quelle
2

rm -f .git/index.lockhat nicht geholfen, weil ich eine gesperrte Datei hatte, die nicht gelöscht werden konnte. Also, war index.lockauch von einer Anwendung erfasst worden.

Ich habe eine Alternative zu Unlocker namens Lock Hunter heruntergeladen und beide Dateien gelöscht. Githat sie gefangen genommen.

CoolMind
quelle
2

Ich habe die gleichen Probleme, als ich versuchte, eine Datei in SourceTree bereitzustellen.

Um dies zu lösen, gehen Sie in den Ordner .git im Projektverzeichnis und löschen Sie index.lock manuell. Fertig.

MayankD
quelle
Eigentlich finde ich in SourceTree, dass es normalerweise ausreicht, ein paar Sekunden zu warten und es erneut zu versuchen.
Matt
2

Falls jemand anderes helfen kann ... Ich habe es mit der Kommandozeile versucht rm -f .git/index.lockund es hat nicht funktioniert (Terminal hat keinen Fehler angezeigt). Ich ging einfach direkt in den Ordner .gitund löschte die index.lockDatei.

Hinweis: Der .gitOrdner befindet sich in Ihrem Root-Repository und ist ausgeblendet. In Mac: Cmd+ Shift+ ., um versteckte Dateien anzuzeigen.

TomCobo
quelle
2

Für mich war die Lösung so einfach wie das Schließen meiner IDE und das anschließende Auschecken. Ein Teamkollege von mir hatte meine PR akzeptiert und den Code über TFS zusammengeführt. Das Entfernen der .lock-Dateien hat nicht funktioniert.

Chloe Corrigan
quelle
2

Hier einfügen index.lock:

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

Wenn Ihr Repository über Submodule verfügt, löschen Sie auch hier alles index.lock:

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

Ich habe versucht zu löschen, .git/indexaber es hat nicht funktioniert. goAm Ende deinstalliere ich go und entferne alle Ordner, in denen der Name enthalten ist. Dann installiere ich go erneut und es funktioniert!

John Balvin Arias
quelle
1

Für mich aus irgendeinem Grund:

rm .git/index.lock

Hat nicht funktioniert, also bin ich einfach zur .git-Datei gegangen und habe sie manuell gelöscht, was fantastisch funktioniert hat.

Vadim F.
quelle
Was ist der Unterschied zwischen dieser Antwort und der akzeptierten Antwort?
J. Doe
0

Nur zur Klarstellung, für diejenigen, die sich fragen, warum rm und del.

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

Sie können hinzufügen -f, um die Operation zu erzwingen, die funktioniert.

Ande Caleb
quelle
0

Ich hatte das gleiche Problem. Ich musste wenig mehr tun, um das zu lösen. Zuerst habe index.lockich neuen Code gelöscht und dann aus dem vorhandenen Speicherort des Git-Repositorys geklont. Ich hatte meine Codeänderungen an einem separaten Ort. Ich habe .gitOrdner und .gitignoreDatei kopiert und in den Codeordner eingefügt, in dem ich Codeänderungen vorgenommen hatte. Dann habe ich versucht zu begehen und zu pushen, es hat reibungslos funktioniert. Möglicherweise ist diese Einführung hilfreich, wenn Ihr Problem nicht durch die oben angegebenen Lösungen gelöst wird.

Abhishek
quelle
0

Hatte das gleiche Problem mit SourceTree . Auf meinem Host befand sich jedoch überhaupt keine index.lock- Datei. Ich habe die Datei gepackt-refs.lock gefunden und nach dem Löschen wurde das Problem behoben.

Vladimir
quelle
0

Ich hatte das gleiche Problem. Ich habe versucht, meinen Code mit einer xmlDatei (die als Datensatz verwendet wird) mit einer Größe von 1,3 GB zu pushen. Also füge ich diese Datei hinzu .gitignoreund löse das Problem

Dulanga Heshan
quelle
0

Wenn Sie hier basierend auf dem Titel der Frage landen ("Ein anderer Git-Prozess scheint in diesem Repository ausgeführt zu werden"), beachten Sie, dass die akzeptierte Antwort nicht direkt auf Sie anwendbar ist, wenn der Nachricht im Titel dieser Frage eine andere Nachricht wie folgt die unten:

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

In diesem Fall sollten Sie diese Datei (.lock) anstelle von .git / index.lock löschen

derekbaker783
quelle