web-dev-qa-db-fra.com

Les modifications apportées à Visual Studio 2017 15.3.0 git incluent "storage.ide" même si .vs/in .gitignore

J'ai mis à niveau VS 2017 à 15.3.0 il y a quelques jours. Depuis lors, le fichier "storage.ide" est resté dans mes fichiers modifiés, même si j’ai utilisé un fichier .gitignore suggéré pour VS , qui inclut le dossier .vs /. Cela comprend les éléments suivants.

# Visual Studio 2015 cache/options directory
.vs/

J'ai ensuite ajouté ce qui suit pour être plus précis sur l'ignorance de cette liste dans la liste des fichiers à suivre

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

Les modifications dans Team Explorer montrent les éléments suivants:

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

J'ai essayé de réinitialiser ce fichier, mais ceci retourne ensuite sur le prochain commit, et existe également dans toutes les branches que j'ouvre, ce qui empêche le passage facile d'une branche à une autre, même si aucune modification n'a été apportée.

Dans l'explorateur de solutions, les fichiers "applicationhost.config" et ".suo" sont marqués comme "ignorés", mais "storage.ide" est marquée comme "en attente de modification".

J'ai essayé de valider, de synchroniser avec le serveur GitHub, de fermer et de rouvrir des VS et même de redémarrer l'ordinateur.

Ma question est de savoir pourquoi ce fichier est maintenu en tant que fichier modifié, même s'il doit être ignoré pour git.

27
Roger Layton

Pour résoudre ce problème, si vous accédez à l'onglet Team Explorer et cliquez sur le bouton Gérer les connexions (le bouton vert en haut), vous verrez une liste des référentiels Git locaux. 

Cliquez avec le bouton droit sur le référentiel sur lequel vous souhaitez arrêter de suivre le fichier storage.ide, puis sélectionnez Ouvrir une invite de commande.

Vous devriez alors pouvoir taper ce qui suit:

git rm --cached -r .vs

Cela supprime le suivi du dossier .vs, de son contenu et de ses sous-répertoires dans git.

40
Liam

Cela signifie probablement qu'il a été ajouté de manière incorrecte au dépôt git à un moment donné puis ignoré par la suite. git continuera à suivre les modifications apportées aux fichiers gitignored s’ils sont présents dans l’index ("archivés").

Si vous ne souhaitez pas que le fichier soit archivé, vous pouvez le supprimer de l'index en exécutant

git rm path/to-file --cached

Cela gardera le contenu sur le disque, si vous ne voulez pas que le fichier existe, vous pouvez le lancer

git rm path/to-file --force

Notez que cela peut être indésirable si (par exemple) les fichiers de projet de base doivent être archivés comme point de départ pour travailler sur le projet. Et vous devrez simplement faire attention à non commettre ce fichier spécifique.

17
Anthony Sottile

ce qui suit semble avoir résolu le problème pour moi.

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

il ignore tout ce qu'il contient.

7
Noctis

Je viens d'avoir le même problème. Je l'ai résolu en créant un tout nouveau fichier .gitignore à partir de l'explorateur de Visual Studio (Team Explorer => Un répertoire git => Paramètres => Paramètres du référentiel => Fichier Gitignore Ajouter).

Ensuite, j'ai supprimé mon .vs dans mon dossier de projet et validé manuellement par git bash avec les lignes suivantes:

git add *.*
git commit -m "Removing some files"
git Push Origin master
0