【问题标题】:Visual Studio 2017 15.3.0 git changes include "storage.ide" even though .vs/ in .gitignoreVisual Studio 2017 15.3.0 git 更改包括“storage.ide”,即使 .vs/ 在 .gitignore
【发布时间】:2017-08-21 16:44:56
【问题描述】:

几天前我将 VS 2017 升级到 15.3.0。从那时起,文件“storage.ide”一直保留在我修改过的文件中,即使我使用了 a suggested .gitignore for VS,其中包括 .vs/ 文件夹。这包括以下内容。

# Visual Studio 2015 cache/options directory
.vs/

然后我添加了以下内容,以更具体地从要跟踪的文件列表中忽略它

.vs/SIASAWeb/v15/sqlite3/storage.ide
.vs/**/storage.ide

团队资源管理器中的更改显示如下:

<project folder>
  .vs/<project>/v15/sqlite3
    storage.ide

我曾尝试 git 重置此文件,但这会在下一次提交时返回,并且也存在于我打开的所有分支中,导致即使没有进行任何更改,也可以防止从一个分支轻松转移到另一个分支.

在解决方案资源管理器中,“applicationhost.config”和“.suo”文件被标记为“忽略”,但“storage.ide”被标记为“待编辑”。

我尝试过提交、同步到 GitHub 服务器、关闭并重新打开 VS,甚至重新启动计算机。

我的问题是为什么这个文件被维护为一个修改过的文件,即使它应该被 git 忽略。

【问题讨论】:

  • 我刚开始在 v15 中看到 Server 和 slqite3 文件夹,其中包含 db.lock、storage.ide、storage.ide-shm 和 storage.ide-wal 文件。利亚姆的回答解决了它,请“接受”它。

标签: git github visual-studio-2017 team-explorer


【解决方案1】:

要解决此问题,如果您进入团队资源管理器选项卡并单击管理连接按钮(顶部的绿色按钮),您将看到本地 Git 存储库列表。

右键单击要停止跟踪 storage.ide 文件的存储库,然后选择打开命令提示符。

然后您应该能够输入以下内容:

git rm --cached -r .vs

这会从 git 中删除 .vs 文件夹及其内容和子目录。

【讨论】:

  • 完美答案。
【解决方案2】:

这可能意味着它在某个时候被错误地添加到了 git 存储库中,然后被忽略了。 git 将继续跟踪对 gitignored 文件的更改,如果它们存在于索引中(“签入”)。

如果您根本不想签入该文件,可以通过运行将其从索引中删除

git rm path/to-file --cached

这会将内容保留在磁盘上,如果您根本不希望文件存在,您可以运行

git rm path/to-file --force

请注意,如果(例如)要签入基础项目文件作为项目工作的起点,这可能是不可取的。您可能只需要小心提交该特定文件。

【讨论】:

  • 谢谢安东尼。这解决了问题。我必须在升级 VS 后打开的每个分支中应用它。但是,在某些情况下,它会删除它,然后立即重新添加。
  • 我对 VS 的 git 集成不是很熟悉(因为我还没有使用它,因为它还处于起步阶段),但我可以想象这些东西可能会如何不同步。您可能会发现在 Visual Studio 关闭时使用 git cli 修复它然后重新打开 Visual Studio 可能会有所帮助?
  • VS中的Git集成不会自动添加storage.ide文件。它很可能在某个时候意外地包含在提交中,然后进入不同的分支。正如 Anthony 所提到的,一旦在 Git 存储库中提交了文件,忽略模式就不再适用于它。如果你使用 git log 查看 storage.ide 文件的历史,它应该会告诉你它是什么时候添加的。
【解决方案3】:

以下似乎已经为我解决了这个问题。

# Visual Studio 2015/2017 cache/options directory
*.vs/

它会忽略其中的所有内容。

【讨论】:

    【解决方案4】:

    我也遇到了同样的问题。我通过从 Visual Studio 的团队资源管理器(团队资源管理器 => 一些 git 目录 => 设置 => 存储库设置 => Gitignore 文件添加)创建一个全新的 .gitignore 文件来解决它。

    然后我在我的项目文件夹中删除了我的.vs,并通过 git bash 手动提交了以下几行:

    git add *.*
    git commit -m "Removing some files"
    git push origin master
    

    【讨论】:

      【解决方案5】:

      我正在使用 SourceTree(https://www.sourcetreeapp.com/) 来管理我的 git 提交。 有了它,您可以右键单击您的更改并选择停止跟踪。我将它用于您试图忽略的相同文件,因为我自己也刚刚升级到 15.3.0,这是我最后一次看到那些待处理的更改

      【讨论】:

      • 可能您可以扩展您的答案,告诉原始发帖人 (OP) 在他的情况下如何做到这一点。简单地说它对我有用并没有真正的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多