问题
I upgraded VS 2017 to 15.3.0 a few days ago. Since then file "storage.ide" has remained in my modified files, even through I have used a suggested .gitignore for VS, which includes the .vs/ folder. This includes the following.
# Visual Studio 2015 cache/options directory
.vs/
I then added the following to be more specific about ignoring this from the list of files to be tracked
.vs/SIASAWeb/v15/sqlite3/storage.ide
.vs/**/storage.ide
The Changes in the Team Explorer shows the following:
<project folder>
.vs/<project>/v15/sqlite3
storage.ide
I have tried to git reset this file, but this then returns on the next commit, and also exists in all branches which I open, resulting in this then preventing the easy shift from one branch to another even if no changes were made.
In the Solution Explorer the "applicationhost.config" and ".suo" files are marked as "ignored", but "storage.ide" is marked as "pending edit".
I have tried committing, synced to the GitHub server, closing and re-opened VS, and even rebooting the computer.
My question is why this file is being maintained as a modified file, even though it should be ignored for git.
回答1:
To fix this, if you got to the Team Explorer tab and click on the Manage Connections button (the green one a the top) you will see a list of local Git Repositories.
Right click on the repository you want to stop tracking the storage.ide file on and select Open Command Prompt.
You should then be able to type the following:
git rm --cached -r .vs
This removes the .vs folder and its contents and subdirectories from being tracked in git.
回答2:
This probably means it was incorrectly added to the git repository at some point and then ignored afterwards. git will continue to track changes to gitignored files if they are present in the index ("checked in").
If you don't want the file checked in at all, you can remove it from the index by running
git rm path/to-file --cached
This will keep the contents on disk, if you don't want the file to exist at all you can run
git rm path/to-file --force
Note that this may be undesirable if (for instance) the base project files are intended to be checked in as a starting point for working on the project. And you may just have to be careful about not committing that specific file.
回答3:
the following seems to have solved the issue for me.
# Visual Studio 2015/2017 cache/options directory
*.vs/
it ignores everything in it.
回答4:
I just had the same issue. I solved it by making a whole new .gitignore
file from visual studio's team explorer (Team Explorer => Some git directory => Settings => Repository Settings => Gitignore file Add).
Then I deleted my .vs
in my project folder and manually committed by git bash with the following lines:
git add *.*
git commit -m "Removing some files"
git push origin master
回答5:
I'm using SourceTree(https://www.sourcetreeapp.com/) to manage my git commits. With it you can right click your changes and have an option of Stop Tracking.I used it for the same files you are trying to ignore as myself also just upgraded to 15.3.0 and that was the last time i saw those pending changes
来源:https://stackoverflow.com/questions/45802083/visual-studio-2017-15-3-0-git-changes-include-storage-ide-even-though-vs-in