2017-08-21 250 views
15

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

# Visual Studio 2015 cache/options directory 
.vs/ 

我加入以下更具体有关从文件列表中忽略此进行跟踪

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

在Team Explorer中的变化显示以下内容:

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

我曾尝试将git重置该文件,但是这会在下一次提交时返回,并且还存在于我打开的所有分支中,导致此操作阻止从一个分支轻松转换到另一个分支即使没有改变。

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

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

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

+0

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

回答

14

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

如果你不希望在所有检查的文件,你可以从指数运行

git rm path/to-file --cached 

删除这将保存在磁盘上的内容,如果你不希望文件在所有的存在,您可以运行

git rm path/to-file --force 

注意,这可能是不可取的,如果(例如)基地项目文件旨在检查作为一个起点,该项目的工作。你可能只需要注意而不是提交该特定文件。

+0

谢谢安东尼。这解决了这个问题。我必须在我升级VS之后打开的每个分支中应用此功能。但是,在某些情况下,它会将其删除,然后立即再次将其添加回来。 –

+0

我对VS的git集成并不是很熟悉(因为它还处于初级阶段,所以我没有用过它),但我可以想象这些事情可能会不同步。你可能会发现,在visual studio关闭时使用git cli修复它,然后重新打开visual studio可能会有所帮助? –

+2

VS中的Git集成不会自动添加storage.ide文件。在某个时候,它可能被意外地包含在提交中,然后转到不同的分支。正如安东尼所提到的,一旦一个文件在Git仓库中被执行,忽略模式不再适用于它。如果您使用git log来查看storage.ide文件的历史记录,它应该告诉您它何时添加。 –

0

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

+1

可能你可以扩大你的答案,告诉原始海报(OP)如何做到这一点在他的情况。简单地说它对我而言并不是很有帮助。 – Umberto

+1

这不提供问题的答案。一旦你有足够的[声誉](https://stackoverflow.com/help/whats-reputation),你将可以[对任何帖子发表评论](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [来自评论](/ review/low-quality-posts/17905740) –

7

以下似乎已经解决了我的问题。

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

它忽略了它中的一切。

14

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

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

然后,您应该能够键入以下命令:

git rm --cached -r .vs 

这消除了.VS文件夹及其内容和子目录从Git中被跟踪。

+0

完美答案。 – nmit026

相关问题