每次提交时VS 2017 Git Local Commit DB.lock错误

时间:2017-11-23 16:38:49

标签: git visual-studio

我们在每次本地提交时都会收到此错误:

  

Git因致命错误而失败。错误:   open(“。vs / XXXXXX.Dev.Library / v15 / Server / sqlite3 / db.lock”):权限   deniedfatal:无法处理路径   .VS / XXXXXX.Dev.Library / V15 /服务器/ sqlite3的/ db.lock

这是VS 2017的全新安装,使用本地git存储库,然后才能同步到VSTS GIT。

我们可以手动删除锁定文件,然后同步,但它会严重降低开发过程(必须关闭删除 ,每次打开提交

有没有人知道这个问题有更好的长期解决方案?

17 个答案:

答案 0 :(得分:255)

只需将.vs文件夹添加到.gitignore文件即可。

以下是来自GitHub的.gitignore模板集合的Visual Studio模板,作为示例:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

如果您在添加.gitignore文件时遇到任何问题,请按以下步骤操作:

  1. 在团队资源管理器的窗口中,转到“设置”。
  2. Team Explorer - Settings

    1. 然后访问存储库设置。
    2. Repository Settings

      1. 最后,在“忽略文件”部分中单击“添加”。
      2. enter image description here

        完成。 ;)
        此默认文件已包含.vs文件夹。

        enter image description here

答案 1 :(得分:44)

  1. .vs文件夹不应该提交。
  2. 创建一个名为" .gitignore"的文件在项目git根目录中。
  3. 添加以下行" .vs /" in" .gitignore"文件。
  4. 现在提交你的项目。
  5. enter image description here

答案 2 :(得分:18)

第1步:
将.vs /添加到.gitignore文件中(如其他答案中所述)。

第2步:
重要的是要理解,如果已经添加了当前分支索引,则步骤1将不会删除.vs /中的文件。通过发出以下命令清除您的活动分支:

git rm --cached -r .vs/*

第3步:
最好立即为项目的所有其他活动分支重复步骤1和2 否则,当切换到未清理的分支时,您将很容易再次遇到相同的问题。

专业提示:
您可能希望使用VisualStudio的官方.gitingore模板,而不仅仅是步骤1,而不仅仅是.vs路径: https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
(但仍然不要忘记第2步和第3步。)

答案 3 :(得分:2)

我遇到了同样的问题,但我已经通过创建.gitignore文件解决了这个问题。

我还发现了一个解决方法,它只是从.vs文件夹中删除db.lock文件,但你必须每次都这样做,并且长时间执行此操作会使这个操作变得烦人。

解决此问题的最佳方法是按照之前的建议创建.gitignore文件,但我认为这也是很好的提及此解决方法,仅用于一般知识目的!

此致 托尼格林顿

答案 4 :(得分:2)

VS 2017 Git Local Commit DB.lock error on every commit

此问题肯定是由损坏的.ignore文件引起的。

如果您的IDE是Visual Studio,请按照以下步骤解决此问题:

  1. 从项目文件夹中删除.gitignore文件
  2. 转到“团队资源管理器”
  3. 在团队资源管理器中回家
  4. 转到设置
  5. 在GIT下,单击“存储库设置”
  6. 在-忽略和属性文件下-在忽略文件下-单击添加。您应该看到一条通知,说明已成功创建“忽略文件”
  7. 构建您的解决方案。构建成功后,将需要一些时间并创建一个新的.ignore文件。
  8. 您现在应该可以进行提交和推送了,而没有任何其他问题

注意:请记住,您的Visual Studio版本可能会以不同的方式放置这些选项。我正在使用Visual Studio 2019社区版。

答案 5 :(得分:1)

我没有直接通过Visual Studio使用Git,而是使用Git Desktop客户端。

然而,我确实收到了类似的错误,但在将更改提交给master之前关闭Visual Studio解决了这个问题。

答案 6 :(得分:0)

除了这些很棒的答案,

我还检查了 VS2017 中的用户名、电子邮件 > 团队资源管理器 > 设置 >

  • 全局设置
  • 存储库设置

基本验证与 Bitbucket 凭据(单击“克隆”链接以查看您给定的用户名/存储库),因为可能存在不匹配。

也就是说,我认为更重要的检查(尤其是在 2x 不同机器上处理同一个 repo 时)是远程 repo 的 URL。

答案 7 :(得分:0)

dotnet现在包括用于gitignore的命令。

从项目文件夹中打开cmd.exe,然后输入:

dotnet new gitignore

答案 8 :(得分:0)

有了这个,我的.gitignore就在我的项目文件夹中,但是主要的git文件夹在解决方案级别。将.gitignore移到解决方案/ git级别的文件夹中正常工作。仍然不确定如何到达那里,但是...

答案 9 :(得分:0)

enter image description here

对我来说,这两个文件是我误删除的,在撤消这两个文件并添加到更改中之后,我能够将更改提交到git。

答案 10 :(得分:0)

我自动生成的.gitignore文件包含/.vs而不是.vs/。解决此错字可解决问题!

答案 11 :(得分:0)

对我来说,以下步骤有所帮助:

  • 关闭Visual Studio 2019
  • 删除项目中的.vs文件夹
  • 重新打开项目,.vs文件夹将自动创建
  • 完成

答案 12 :(得分:0)

如果您使用的是类似Visual Studio这样的IDE,并且在发送命令时它是打开的,请关闭IDE,然后重试

git add .

和其他命令,它将锻炼

答案 13 :(得分:-1)

我已经完成了上述解决方案,最终这项工作解决了我的问题:

  • 关闭视觉工作室

  • 在项目文件夹中运行git bash

  • 写:

    git add。

    git commit -m“ [您的评论]”

    git push

答案 14 :(得分:-1)

尝试将文件手动复制到目录中(C:\ Users \ Admin \ AppData \ Local \ Temp \ WebSitePublish \ digisol--1147805695 \ obj \ Debug \ Package \ PackageTmp.vs \ digisol \ v15 \ Server \ sqlite3)

答案 15 :(得分:-1)

尝试关闭FTP(如果打开) 然后重试。

答案 16 :(得分:-2)

要解决此问题很简单。首先关闭,Visual Studio并打开Windows资源管理器,转到位置文件夹.vs并打开文件夹属性并选中隐藏选项