VS 2017 Git Ошибка локальной компиляции DB.lock при каждом фиксации

Мы получаем эту ошибку при каждом локальном коммите:

Git завершился ошибкой с фатальной ошибкой. Error: open (". Vs/XXXXXX.Dev.Library/v15/Server/sqlite3/db.lock"): Permission deniedfatal: невозможно обработать путь .vs/XXXXXX.Dev.Library/v15/Server/sqlite3/db.lock

Это новая установка VS 2017 с использованием локального репозитория git, прежде чем он сможет синхронизироваться с VSTS GIT.

Мы можем вручную удалить файл блокировки и затем выполнить синхронизацию, но это серьезно замедляет процесс разработки (необходимость каждый раз закрывать, удалять, открывать, фиксировать).

Кто-нибудь знает лучшее долгосрочное решение этой проблемы?

Ответ 1

Просто добавьте папку .vs в файл .gitignore.

Вот шаблон для Visual Studio из коллекции GitHub шаблонов .gitignore, например:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


Если у вас возникли проблемы с добавлением файла .gitignore, выполните следующие действия:

  • В окне Team Explorer откройте "Настройки".

Team Explorer - Настройки

  1. Затем выполните доступ к настройкам репозитория.

Настройки репозитория

  1. Наконец, нажмите "Добавить" в разделе "Игнорировать файл".

введите описание изображения здесь

Готово.;)
Этот файл по умолчанию уже содержит папку .vs.

введите описание изображения здесь

Ответ 2

  • Папка
  • .vs не должна быть зафиксирована.
  • создайте файл с именем ".gitignore" внутри корневого каталога проектов git.
  • Добавьте в файл .gitignore следующую строку ".vs/".
  • Теперь передайте свой проект.

введите описание изображения здесь

Ответ 3

Шаг 1:
Добавьте .vs/к вашему файлу .gitignore (как сказано в других ответах).

Шаг 2:
Важно понимать, что шаг 1 НЕ удалит файлы в .vs/из вашего текущего индекса ветки, если они уже были добавлены в него. Так что очистите свою активную ветку, выполнив:

git rm --cached -r .vs/*

Шаг 3:
Лучше всего немедленно повторить шаги 1 и 2 для всех других активных веток вашего проекта.
В противном случае вы легко столкнетесь с теми же проблемами при переходе на неочищенную ветвь.

Профессиональный совет:
Вместо шага 1 вы можете использовать этот официальный шаблон .gitingore для VisualStudio, который охватывает гораздо больше, чем просто путь .vs:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
(Но все же не забывайте шаги 2 и 3.)

Ответ 4

У меня была та же проблема, но я решил ее, создав файл .gitignore.

Я также нашел обходной путь, который просто состоит в удалении файла db.lock из папки .vs, но вы должны делать это каждый раз, и длительное выполнение этого делает это раздражающей операцией.

Лучший способ решить эту проблему - создать файл .gitignore, как предлагалось ранее, но я думаю, что было бы хорошо упомянуть и этот обходной путь, просто для общих целей!

С уважением, Тони Гринтон

Ответ 5

Я не использую Git напрямую через Visual Studio, но использую клиент Git Desktop.

Однако я получил похожую ошибку, но решил ее, закрыв Visual Studio перед фиксацией изменений в master.

Ответ 6

если вы используете IDE, например Visual Studio, и он открыт, когда вы отправляете команды, закройте IDE и попробуйте снова

git add .

и другие команды, это будет тренировка

Ответ 7

Для меня помогли следующие шаги:

  • Закрыть Visual Studio 2019
  • Удалить папку .vs в проекте
  • Повторно откройте проект, папка .vs создается автоматически
  • Готово

Ответ 8

Попробуйте закрыть FTP, если он открыт, а затем повторите попытку.

Ответ 9

Попробуйте скопировать файл в свой каталог вручную (C:\Users\Admin\AppData\Local\Temp\WebSitePublish\digisol - 1147805695\obj\Debug\Package\PackageTmp.vs\digisol\v15\Server\sqlite3)

Ответ 10

Решить эту проблему просто. Сначала закройте Visual Studio и откройте проводник Windows, перейдите в папку location.vs, откройте свойства папки и отметьте скрытый параметр.