Błąd 2017 Git Local Commit DB.lock przy każdym zatwierdzeniu


200

Ten błąd pojawia się przy każdym zatwierdzeniu lokalnym:

Git nie powiódł się błędu krytycznego. Błąd: otwarty (". Vs / XXXXXX.Dev.Biblioteka / v15 / Server / sqlite3 / db.lock"): Odmowa dostępu: Nie można przetworzyć ścieżki .vs / XXXXXX.Dev.Library / v15 /Server/sqlite3/db.lock

Jest to zupełnie nowa instalacja VS 2017 przy użyciu lokalnego repozytorium git, zanim będzie mogła zsynchronizować się z Azure DevOps GIT.

Możemy ręcznie usunąć plik blokady, a następnie dobrze zsynchronizować , ale to poważnie spowalnia proces programowania (konieczność zamykania , usuwania , otwierania , zatwierdzania za każdym razem).

Czy ktoś zna lepsze długoterminowe rozwiązanie tego problemu?


Jeśli ktokolwiek inny natknie się na to i dodanie „.vs /” do .gitignore nie wydaje się działać, utworzenie pliku w PowerShell, a następnie edycja za pomocą Notepad ++ pozostawiło plik ze złym typem kodowania znaków. Musiałem otworzyć go w VS Code i zakodować jako zwykły UTF8, a potem zadziałało dobrze
Brian Leishman

Odpowiedzi:


418

Wystarczy dodać .vs folder do .gitignore pliku.

Oto szablon dla Visual Studio z kolekcji szablonów .gitignore w GitHub, jako przykład:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


Jeśli masz problemy z dodaniem pliku .gitignore, wykonaj następujące kroki:

  1. W oknie Team Explorer przejdź do Ustawienia.

Team Explorer - Ustawienia

  1. Następnie przejdź do Ustawień repozytorium.

Ustawienia repozytorium

  1. Na koniec kliknij Dodaj w sekcji Ignoruj ​​plik.

wprowadź opis zdjęcia tutaj

Gotowe. ;)
Ten domyślny plik zawiera już folder .vs.

wprowadź opis zdjęcia tutaj


3
Tak, to najlepsze answare, umieściłem tylko „2017” w: # katalogu cache / options programu Visual Studio 2015/2017 .vs /
harveyt

1
Kłopot w tym, git clean -fxdże robi to majtki w skręcie ... Muszę rzucić VS, zanim będę mógł wyczyścić. To zaczęło się dopiero od VS2017 i nie miało miejsca w 2015 r.
Peter McEvoy

4
To też działało dla mnie. Idealna odpowiedź na wprowadzający w błąd komunikat o błędzie.
Stanley Okpala Nwosa

@ Matheus, po zrobieniu tego zatwierdzenia wyreżyserowane działało, ale zatwierdzenie wszystkich i wypchnięcie nadal pokazuje ten sam błąd. Co można zrobić, aby zmusić i zatwierdzić?
Stanley Okpala Nwosa

Pracował dla mnie, chociaż robienie git w VS wydaje się trochę magiczne. Próbuję wyciągnąć królika z kapelusza, ale zamiast tego dostaję szympansa.
Roberto

63
  1. Folder .vs nie powinien zostać zatwierdzony.
  2. utwórz plik o nazwie „.gitignore” w katalogu głównym projektu git.
  3. Dodaj następujący wiersz „.vs /” w pliku „.gitignore”.
  4. Teraz zatwierdz swój projekt.

wprowadź opis zdjęcia tutaj


Witaj, mimo że ten typ pliku znajduje się w pliku gitignore, wciąż pojawia się błąd. proszę o pomoc.
user3820266,

33

Krok 1:
Dodaj plik .vs / do pliku .gitignore (jak powiedziano w innych odpowiedziach).

Krok 2:
Ważne jest, aby zrozumieć, że krok 1 NIE usunie plików w .vs / z bieżącego indeksu oddziału, jeśli zostały już do niego dodane. Wyczyść swój aktywny oddział, wydając:

git rm --cached -r .vs/*

Krok 3:
Najlepiej natychmiast powtórzyć kroki 1 i 2 dla wszystkich innych aktywnych gałęzi projektu.
W przeciwnym razie z łatwością zmierzysz się z tymi samymi problemami po przejściu na nieoczyszczoną gałąź.

Wskazówka Pro:
zamiast kroku 1 możesz skorzystać z tego oficjalnego szablonu .gitingore dla VisualStudio, który obejmuje znacznie więcej niż tylko ścieżkę .vs:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
(Ale nadal nie zapominaj o krokach 2 i 3).


.vs zostało wykluczone z mojego pliku .gitignore (.vs /) i problem nadal występuje. Z czym jeszcze może być problem?
Stanley Okpala Nwosa

1
Był w stanie rozwiązać, uruchamiając git rm --cached -r .vs / *. Dzięki
Stanley Okpala Nwosa

5

Błąd 2017 Git Local Commit DB.lock przy każdym zatwierdzeniu

Przyczyną tego problemu był uszkodzony plik .ignore.

Jeśli Twoim IDE jest Visual Studio, wykonaj następujące kroki, aby rozwiązać ten problem:

  1. Usuń plik .gitignore z folderu projektu
  2. Idź do Team Explorer
  3. Przejdź do strony głównej w Team Explorer
  4. Przejdź do ustawień
  5. W obszarze GIT kliknij Ustawienia repozytorium
  6. Pliki - Ignoruj ​​i atrybuty - Pliki ignoruj ​​- Kliknij Dodaj. Powinieneś zobaczyć powiadomienie, że plik ignorowania został pomyślnie utworzony
  7. Zbuduj swoje rozwiązanie. Zajmie to trochę czasu i utworzy nowy plik .ignore po pomyślnej kompilacji
  8. Powinieneś teraz mieć możliwość zatwierdzania i wypychania bez dalszych problemów

Uwaga: pamiętaj, że Twoja wersja studia wizualnego może umieszczać te opcje w inny sposób. Używam Visual Studio 2019 Community Edition.


Pracował dla mnie. Dzięki!
Chase Ernst

2

Miałem ten sam problem, ale rozwiązałem go, tworząc plik .gitignore.

Znalazłem również obejście, które polega po prostu na usunięciu pliku db.lock z folderu .vs, ale musisz to robić za każdym razem, a długie robienie tego sprawia, że ​​jest to denerwująca operacja.

Najlepszym sposobem rozwiązania tego problemu jest utworzenie pliku .gitignore, jak sugerowano wcześniej, ale myślę, że dobrze jest wspomnieć również o tym obejściu, tylko dla ogólnego celu wiedzy!

Pozdrawiam, Tony Grinton


0

Nie używam Git bezpośrednio przez Visual Studio, ale używam klienta Git Desktop.

Dostałem jednak podobny błąd, ale rozwiązałem go, zamykając program Visual Studio przed zatwierdzeniem zmian w systemie głównym.


0

jeśli korzystasz z IDE, takiego jak studio graficzne i jest ono otwarte podczas wysyłania poleceń, zamknij IDE i spróbuj ponownie

git add .

i inne polecenia, będzie ćwiczyć


0

Dla mnie poniższe kroki pomogły:

  • Zamknij Visual Studio 2019
  • Usuń folder .vs w projekcie
  • Ponownie otwórz projekt, folder .vs zostanie utworzony automatycznie
  • Gotowe

0

Mój automatycznie wygenerowany .gitignoreplik zawiera /.vszamiast .vs/. Naprawienie tej literówki naprawiło problem!


0

wprowadź opis zdjęcia tutaj

Dla mnie te dwa pliki usunąłem przez pomyłkę, po cofnięciu tych dwóch plików i dodaniu ich do moich zmian, byłem w stanie zatwierdzić moje zmiany w git.


0

Gdyby to i mój .gitignore były w folderze projektu, ale główne foldery git znajdowały się na poziomie rozwiązania. Przeniesienie .gitignore do folderów poziomu rozwiązania / git działało. Nadal nie jestem pewien, jak się tam dostało, ale ...


-1

Spróbuj ręcznie skopiować plik do katalogu (C: \ Users \ Admin \ AppData \ Local \ Temp \ WebSitePublish \ digisol - 1147805695 \ obj \ Debug \ Package \ PackageTmp.vs \ digisol \ v15 \ Server \ sqlite3)


-1

Zrobiłem powyższe rozwiązania, w końcu to rozwiązało mój problem:

  • Zamknij studio wizualne

  • Uruchom git bash w folderze projektu

  • Pisać :

    git add.

    git commit -m „[Twój komentarz]”

    git push


-2

Rozwiązanie tego problemu jest proste. Najpierw zamknij Visual Studio i otwórz Eksploratora Windows, przejdź do folderu lokalizacji .vs i otwórz właściwości folderu i zaznacz opcję ukrytą

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.