web-dev-qa-db-fra.com

Visual Studio TFS Git ne voyant aucune modification

Je ne parle pas de Git for TFS de Visual Studio.

J'ai cloné la solution d'un collègue dans Git sur TFS et commencé à ajouter du code. Je me suis alors rendu compte que j'avais besoin de ma propre branche pour les modifications que je faisais, et donc en suivant les instructions de Poussez une nouvelle branche locale vers un dépôt Git distant et suivez-la aussi j'ai couru 

git checkout -b e4ctim
git Push -u Origin e4ctim

Lorsque je modifie mon code, visual studio affiche l'icône familière en forme de coche rouge à côté du fichier de code pour m'assurer que la modification a déclenché l'extraction du fichier:

VS red-tick

Et puis, lorsque je sauvegarde le fichier, Visual Studio renvoie l'icône sur le cadenas bleu. Je suppose que le passage du cadenas rouge au cadenas bleu signifie que le changement a été enregistré localement dans Git:

VS blue-lock

Mais quand je regarde l'historique du fichier modifié, il n'y en a pas!

No history

Je souhaite valider mes modifications localement et les synchroniser avec le serveur TFS.

Visual Studio ne voit aucune modification:

VS TFS Changes

En ligne de commande, je peux voir que Git a remarqué toutes mes modifications en lançant la commande

git status

et voir de nombreuses modifications non mises en scène pour les fichiers de validation et non suivis.

git status cmd

Looing at Git book Je pourrais utiliser 

git add

ou plus spécifiquement

git add -u .

pour préparer les fichiers pour un commit, mais je suis réticent à le faire en tant que Développez votre application dans un référentiel Git (suivi, commit) La documentation de Visual Studio indique:

Q: Où est l'étape Git?
R: Si vous êtes un utilisateur expérimenté de Git, vous avez peut-être remarqué que Visual Studio gère les modifications différemment de la commande Invite. Vous vous êtes peut-être demandé si la section Modifications incluses contient vos changements mis en scène. En fait, Visual Studio contourne généralement le Git étape pour vous. Lorsque vous validez des modifications, Visual Studio simultanément les étapes et les engage. La seule exception se produit lorsque vous ajoutez un fichier déposer dans votre référentiel Git; Visual Studio met en scène ce type de changement.

Visual Studio met en scène et valide les modifications simultanément. Mais pourquoi ne mentionne-t-il pas les modifications que j'ai apportées aux fichiers suivis et me permet-il de les valider?

55
dumbledad

Il s’agit plus d’une solution de contournement que d’une explication, mais j’ai constaté que si j’ignorais la documentation "lorsque vous validez les modifications, Visual Studio les met en scène et les valide simultanément" et ajoute à la place les modifications apportées à staging avec la commande 

git add -u .

puis Visual Studio a soudainement pris conscience des modifications apportées et m'a laissé les valider localement et les synchroniser avec le serveur TFS. De plus, il a ensuite placé la croix verte «nouveau fichier» sur les fichiers que j'avais ajoutés et j'ai découvert que je pouvais faire un autre commit, puis une autre synchronisation pour récupérer les ajouts et les suppressions que j'avais effectués.

Depuis lors, Visual Studio fait ce que j'attendais: lorsque je modifie le fichier, le fichier est répertorié comme modifié dans la fenêtre de validation.

Je ne sais toujours pas pourquoi Visual Studio n'a pas réussi à récupérer les modifications avant un git add initial, mais au moins, cela fonctionne maintenant.

51
dumbledad

Je devais ajouter cette ligne à mon .gitignore:

[path to project]/node_modules/

Apparemment, le VS2015 s’écrasait sur un très long chemin et déciderait de renoncer à tout espoir.

14
John

J'avais le même problème et j'ai réalisé ce qui suit: 

git add -u 

en interne pour la préparation des mises à jour. Si certains fichiers que vous essayez d'ajouter à votre jeu de modifications sont ouverts par un autre processus, la commande git obtient une erreur d'autorisation. Et Visual Studio ne montrera pas les modifications.

Dans mon cas, un document de mon référentiel ouvert par une autre application empêchait Visual Studio d'afficher les modifications en raison de l'erreur d'autorisation Git. Vérifiez donc si l’un des fichiers de votre référentiel git n’est ouvert par aucune autre application.

5
Gus Rodriguez

supprimer le fichier myProject\.git\index.lock corrigé dans mon cas.

5
anion

J'utilise VS 2015 Update 1 et rencontre également ce problème. En outre, au même moment, la fenêtre de sortie du VS m'a indiqué que mon fichier VC.opendb situé dans le dossier de la solution était occupé par un autre programme. Selon this , j’ai résolu le problème de l’occupation: ajoutez *.VC.opendb et *.VC.db au fichier .gitignore. Alors tout se passe bien.

3
Tong Su

J'avais le même problème avec Visual Studio Update 3. VS enregistrait localement mais ne récupérait aucune modification et ne pouvais donc pas valider.

J'ai téléchargé Git pour Windows à partir de https://git-for-windows.github.io/ (merci @fhilton), j'ai ouvert l'invite de commande du développeur et changé de répertoire en C:\Repos\Scheduler (l'emplacement de mon code source).

J'ai ensuite lancé GET ADD -U et j'ai reçu l'erreur suivante ...

erreur: ouvrir ("WindowsServices\Scheduler.WindowServices.InstallLog"): Permission refusée

erreur: impossible d'indexer le fichier WindowsServices\Scheduler.WindowServices.InstallLog

fatal: échec de la mise à jour des fichiers

Comme d'autres l'ont dit, il semble que les outils GIT de Visual Studio puissent échouer en silence, même pour les erreurs de niveau Windows les plus élémentaires. Pire encore, cela peut vous dire que GIT est parfaitement synchronisé. La ligne de commande est certainement votre ami pour le moment.

1
Quorfee

Article utile! Utiliser Git Bash (git add -u) m'a aidé à me rapprocher de la cause du problème. Après avoir validé des modifications qui n'apparaissaient pas dans Visual Studio, seule une validation à mi-parcours a été effectuée en raison de l'utilisation d'un projet de base de données SQL Server. Apparemment, Windows 10 a commencé à ajouter des fichiers jfm dans le même dossier en le maintenant ouvert et en empêchant celui-ci d’avoir accès à VS. La solution consistait à l'ajouter au .gitignore avant de valider.

Voir ce fil pour plus d'informations:

Le répertoire du projet de base de données Visual Studio 2015 contient un fichier avec l'extension jfm

0
JERKER

Ouvrez Vue> Sortie, sélectionnez "Contrôle de la source - Git" dans Afficher la sortie de et vérifiez les erreurs éventuelles. Comme d'autres l'ont mentionné, toute erreur dans Git oblige MS Project à ignorer silencieusement les modifications.

0
Sergey Gussak

J'ai eu ce problème sur une nouvelle machine avec une nouvelle installation de VS2013 Update 5 et VS 2015 et cela me rendait fou. Ensuite, j'ai découvert que si j'avais installé Git pour Windows, le problème avait disparu! https://git-for-windows.github.io/

0
fhilton

Ensuite, j'essayais de faire des changements mais les fichiers ne sont pas affectés ... Il existe une solution simple pour cela. Le problème majeur est l’un de vos fichiers git ignore les fichiers ignorés.

Ouvrez votre référentiel local, par exemple D: // repos, puis recherchez le fichier souhaité. 

-> D: //repos/project1/HomeViewModel.cs

-> Faites un clic droit dessus et cliquez sur Git Extentions

-> Choisissez + Ajouter des fichiers

 enter image description here

-> puis l'option Force

 enter image description here

-> Cliquez sur Addfiles..Here vous allez votre fichier sera ajouté dans les modifications

0
Venkata Ramana