VS 2017 Git Local Commit DB.lock-Fehler bei jedem Commit


198

Wir erhalten diesen Fehler bei jedem lokalen Commit:

Git ist mit einem schwerwiegenden Fehler fehlgeschlagen. Fehler: open (". Vs / XXXXXX.Dev.Library / v15 / Server / sqlite3 / db.lock"): Berechtigung verweigert fatal: Pfad .vs / XXXXXX.Dev.Library / v15 kann nicht verarbeitet werden /Server/sqlite3/db.lock

Dies ist eine brandneue Installation von VS 2017 unter Verwendung des lokalen Git-Repositorys, bevor es mit Azure DevOps GIT synchronisiert werden kann.

Wir können die Sperrdatei manuell löschen und dann problemlos synchronisieren , aber dies verlangsamt den Entwicklungsprozess erheblich ( jedes Mal muss geschlossen , gelöscht , geöffnet , festgeschrieben werden).

Kennt jemand eine bessere langfristige Lösung für dieses Problem?


Wenn jemand anderes darauf stößt und ".vs /" zu .gitignore hinzufügt, scheint dies nicht zu funktionieren. Wenn Sie die Datei in PowerShell erstellen und dann mit Notepad ++ bearbeiten, bleibt die Datei mit der falschen Zeichenkodierung zurück. Ich musste es in VS Code öffnen und als einfaches UTF8 codieren, und dann funktionierte es einwandfrei
Brian Leishman

Antworten:


416

Fügen Sie einfach den .vs-Ordner zur .gitignore- Datei hinzu.

Hier ist die Vorlage für Visual Studio aus GitHubs Sammlung von .gitignore-Vorlagen als Beispiel:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


Wenn Sie Probleme beim Hinzufügen der Gitignore-Datei haben, führen Sie einfach die folgenden Schritte aus:

  1. Gehen Sie im Fenster des Team Explorers zu Einstellungen.

Team Explorer - Einstellungen

  1. Rufen Sie dann die Repository-Einstellungen auf.

Repository-Einstellungen

  1. Klicken Sie abschließend im Abschnitt Datei ignorieren auf Hinzufügen.

Geben Sie hier die Bildbeschreibung ein

Getan. ;)
Diese Standarddatei enthält bereits den Ordner .vs.

Geben Sie hier die Bildbeschreibung ein


3
Ja, das ist die beste Antwort, ich habe "2017" nur in folgendem Verzeichnis abgelegt: # Visual Studio 2015/2017 Cache / Optionsverzeichnis .vs /
Harvey

1
Das Problem ist, dass git clean -fxdes dann einen Schlüpfer gibt. Ich muss VS beenden, bevor ich putzen kann. Dies hat erst seit VS2017 begonnen und ist 2015 nicht geschehen
Peter McEvoy

4
Das hat auch bei mir funktioniert. Eine perfekte Antwort auf eine irreführende Fehlermeldung.
Stanley Okpala Nwosa

@Matheus, nachdem dieses Commit durchgeführt wurde, hat es funktioniert, aber Commit All und Push zeigen immer noch den gleichen Fehler. Was könnte getan werden, um es zu verpflichten und voranzutreiben?
Stanley Okpala Nwosa

Hat für mich gearbeitet, obwohl es die meiste Zeit ein bisschen magisch ist, Git in VS zu machen. Ich versuche, ein Kaninchen aus dem Hut zu ziehen, bekomme aber stattdessen einen Schimpansen.
Roberto

62
  1. Der Ordner .vs sollte nicht festgeschrieben werden.
  2. Erstellen Sie eine Datei mit dem Namen ".gitignore" im Git-Stammverzeichnis des Projekts.
  3. Fügen Sie die folgende Zeile ".vs /" in die Datei ".gitignore" ein.
  4. Legen Sie nun Ihr Projekt fest.

Geben Sie hier die Bildbeschreibung ein


Hallo, trotz dieses Dateityps in der Gitignore-Datei erhalte ich immer noch eine Fehlermeldung. Bitte helfen Sie.
user3820266

33

Schritt 1:
Fügen Sie .vs / zu Ihrer .gitignore-Datei hinzu (wie in anderen Antworten angegeben).

Schritt 2:
Es ist wichtig zu verstehen, dass in Schritt 1 keine Dateien in .vs / aus Ihrem aktuellen Zweigindex entfernt werden, wenn sie bereits hinzugefügt wurden. Löschen Sie also Ihren aktiven Zweig, indem Sie Folgendes ausgeben:

git rm --cached -r .vs/*

Schritt 3:
Wiederholen Sie die Schritte 1 und 2 am besten sofort für alle anderen aktiven Zweige Ihres Projekts.
Andernfalls treten beim Wechsel zu einem nicht gereinigten Zweig leicht wieder dieselben Probleme auf.

Profi-Tipp:
Anstelle von Schritt 1 möchten Sie möglicherweise diese offizielle .gitingore-Vorlage für VisualStudio verwenden, die viel mehr als nur den .vs-Pfad abdeckt:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
(Vergessen Sie aber immer noch nicht die Schritte 2 und 3.)


.vs wurde in meiner .gitignore-Datei (.vs /) ausgeschlossen, und das Problem besteht weiterhin. Womit könnte das Problem sonst noch liegen?
Stanley Okpala Nwosa

1
Konnte durch Ausführen von git rm --cached -r .vs / * aufgelöst werden. Vielen Dank
Stanley Okpala Nwosa

5

VS 2017 Git Local Commit DB.lock-Fehler bei jedem Commit

Dieses Problem muss durch eine beschädigte .ignore-Datei verursacht worden sein.

Wenn Ihre IDE Visual Studio ist, führen Sie die folgenden Schritte aus, um dieses Problem zu beheben:

  1. Löschen Sie die Gitignore-Datei aus Ihrem Projektordner
  2. Gehen Sie zum Team Explorer
  3. Gehen Sie im Team Explorer nach Hause
  4. Gehe zu den Einstellungen
  5. Klicken Sie unter GIT auf Repository-Einstellungen
  6. Unter - Dateien ignorieren und Attribute - Unter Datei ignorieren - Klicken Sie auf Hinzufügen. Sie sollten eine Benachrichtigung erhalten, dass die Ignorierdatei erfolgreich erstellt wurde
  7. Erstellen Sie Ihre Lösung. Nach erfolgreichem Erstellen dauert es eine Weile, bis eine neue .ignore-Datei erstellt wird
  8. Sie sollten jetzt in der Lage sein, ohne weitere Probleme festzuschreiben und zu pushen

NB: Beachten Sie, dass Ihre Version von Visual Studio diese Optionen möglicherweise anders platziert. Ich verwende Visual Studio 2019 Community Edition.


Hat für mich gearbeitet. Vielen Dank!
Chase Ernst

2

Ich hatte das gleiche Problem, aber ich habe es durch Erstellen der .gitignore-Datei behoben.

Ich habe auch eine Problemumgehung gefunden, die einfach darin besteht, die Datei db.lock aus dem Ordner .vs zu entfernen, aber Sie müssen dies jedes Mal tun, und wenn Sie dies lange tun, ist dies ein ärgerlicher Vorgang.

Der beste Weg, um dieses Problem zu lösen, besteht darin, die .gitignore-Datei wie zuvor vorgeschlagen zu erstellen. Ich denke jedoch, dass es gut ist, auch diese Problemumgehung zu erwähnen, nur aus Gründen des Allgemeinwissens!

Grüße, Tony Grinton


0

Ich verwende Git nicht direkt über Visual Studio, sondern den Git Desktop-Client.

Ich habe jedoch einen ähnlichen Fehler erhalten, ihn jedoch durch Schließen von Visual Studio behoben, bevor Änderungen am Master vorgenommen wurden.


0

Wenn Sie eine IDE wie Visual Studio verwenden und diese beim Senden von Befehlen geöffnet ist, schließen Sie die IDE und versuchen Sie es erneut

git add .

und andere Befehle wird es trainieren


0

Für mich haben die folgenden Schritte geholfen:

  • Schließen Sie Visual Studio 2019
  • Löschen Sie den Ordner .vs im Projekt
  • Öffnen Sie das Projekt erneut. Der Ordner .vs wird automatisch erstellt
  • Getan

0

Meine automatisch generierte .gitignoreDatei enthält /.vsstatt .vs/. Das Beheben dieses Tippfehlers hat das Problem behoben!


0

Geben Sie hier die Bildbeschreibung ein

Für mich waren diese beiden Dateien, die ich versehentlich gelöscht habe, nachdem ich diese beiden Dateien rückgängig gemacht und in meine Änderungen aufgenommen worden war, in der Lage, meine Änderungen an git zu übergeben.


0

Hatte dies und mein .gitignore befand sich in meinem Projektordner, aber die Haupt-Git-Ordner befanden sich auf Lösungsebene. Das Verschieben von .gitignore in die Ordner auf Lösungs- / Git-Ebene hat funktioniert. Ich bin mir immer noch nicht sicher, wie es dahin gekommen ist, aber ...


-1

Versuchen Sie, die Datei manuell in Ihr Verzeichnis zu kopieren (C: \ Benutzer \ Admin \ AppData \ Local \ Temp \ WebSitePublish \ digisol - 1147805695 \ obj \ Debug \ Package \ PackageTmp.vs \ digisol \ v15 \ Server \ sqlite3).


-1

Ich hatte oben Lösungen gemacht, schließlich löste diese Arbeit mein Problem:

  • Schließen Sie das visuelle Studio

  • Führen Sie die Git-Bash im Projektordner aus

  • Schreiben :

    git hinzufügen.

    git commit -m "[dein Kommentar]"

    Git Push


-2

Das Problem zu beheben ist einfach. Schließen Sie zuerst Visual Studio und öffnen Sie den Windows Explorer. Wechseln Sie zum Speicherortordner .vs, öffnen Sie die Ordnereigenschaften und aktivieren Sie die Option ausgeblendet

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.