67 votes

Visual Studio 2015 Git message d'erreur "Ne peut pas tirer/commutateur parce qu'il y a des modifications non validées"

J'ai de la difficulté à faire un pull de origin. Je reçois:

"Ne peut pas tirer parce qu'il y a des modifications non validées. Valider ou annuler vos modifications avant de tirer de nouveau. Voir la fenêtre de Sortie pour plus de détails."

Cela s'applique également à la commutation de branches. Je reçois un même type de message, mais ce n'est pas toujours le cas.

Je suis à l'aide de Visual Studio 2015 mise à Jour de 1 et Visual Studio Team Services Git. Sur ma machine j'ai un local master de la branche, et des branches de développement. Chaque fois que je passe en master puis-je faire un pull je reçois le message d'erreur. J'ai recouru à faire une cachette et déposez stash (ligne de commande) et parfois j'utilise TortoiseGit de faire la traction et ça fonctionne.

Ce qui est étrange est, même si j'essaie de revenir (sur la non validées fichiers) à l'aide de TortoiseGit il montre qu'il a été repris avec succès (j'ai déjà essayé Visual Studio annuler, rien ne se passe). En essayant de tirer à nouveau, il est toujours le même problème. Le non validées fichiers seront là et parfois, quand je fais un git status il est dit il n'y a rien à valider.

Juste une remarque: Ce problème peut se produire même après le passage d'une branche sur master. Dans ce cas, il n'existe aucun moyen il peut y avoir des modifications non validées, car je n'aurais pas été en mesure de basculer dans la première place.

Je suis encore nouveau pour Git, mais je voudrais savoir si il existe une meilleure façon de résoudre ce que je voudrais utiliser un environnement au lieu de l'utilisation de la commutation entre les différents environnements pour chaque tâche; il est plus facile pour moi de tout faire à partir de Visual Studio. J'ai déjà lu sur:

TFS/GIT dans VS Ne peuvent pas changer de maître parce qu'il y a des modifications non validées

Mise à JOUR

Il semble que ce problème a à voir avec les fins de ligne.

En faisant un git diff -R vous pouvez voir que la ligne qui se termine a été ajouté, "^M", et il est différent. Retrait de l' * text=auto dans gitattributes (puis vérifier les changements) et de le remettre à nouveau de sorte que le gitattributes n'est pas le signe d'un changement d'elle-même qui doit être engagé semble aider, il n'y aura pas de changements.

66voto

Csaba Toth Points 1442

Pour moi, je n'avais pas toutes les modifications non validées ou de tout sans traces de fichiers, et Visual Studio 2015 toujours présenté l'avertissement.

  1. Proche de la solution dans Visual Studio, la sortie de Visual Studio.
  2. Ouvrez Git Bash (ou votre favori Git de l'INTERFACE utilisateur)
  3. Accédez à votre référentiel (ou ouvrez le référentiel avec le Git de l'INTERFACE utilisateur)
  4. git pull (ou effectuer tirez sur le Git de l'INTERFACE utilisateur)
  5. Fusion se passe (j'espère pas de conflits, comme dans mon cas), vi ouvre (ou la fusion par défaut l'outil de résolution)
  6. :wq puis appuyez sur ENTER en vi (ou le calme de la poignée de l'outil de fusion qui surgi en option) et j'espère que cela résout tout comme pour moi.
  7. Démarrez Visual Studio 2015, ouvrez le projet

J'ai ajouté un plus sûr, étape par étape, en donnant l'ordre à ouverture et fermeture de la solution et de Visual Studio. C'est peut-être plus prudent, et peut-être un rechargement serait suffisant. Ce symptôme pourrait être un bug de Visual Studio intégration de Git pièces, et ce sera peut-être résolu à l'avenir.

11voto

RhysO Points 846

Type git status dans une ligne de commande ouvert à partir de ce répertoire. Si il est rouge et/ou vert de texte, vous avez changé certains trucs et pas encore ajouté et engagée. Rétablir les fichiers (en faisant git checkout -- <file>), ou les ajouter et valider (en faisant git add --all alors git commit -m "commit message"). Vous pouvez ensuite consulter les branches ou quoi que ce soit que vous voulez faire.

9voto

Dhruv Points 1368

Essayez avec ces commandes, en passant par le répertoire de travail du projet dans l'invite de commande.

git add -A
git commit -m "your message"
git fetch origin master
git pull origin master
git push origin master //To push to the Git system

8voto

user1431356 Points 33

J'ai eu ce problème dans Visual Studio 2017 construire 15,5 et qu'est-ce résolu pour moi était d'aller dans l'Équipe de l'Explorateur de ParamètresParamètres Globaux et""Élaguer les branches distantes au cours de fetch" et "Rebase locaux de la direction de l'tirant" à True.

7voto

Eddie Chen - MSFT Points 23046

Ce problème se produit généralement lorsqu'il y a un fichier/changement, qui n'a pas été commis localement, mais il est inclus dans la liste action.

Par exemple, vous ajoutez un nouveau fichier "test.txt" à partir de votre dépôt Git local dossier directement (en dehors de Visual Studio). Ce fichier peut être répertoriée dans le "sans traces de Fichiers" option, de sorte que lorsque vous valider les modifications, ce fichier n'a pas été suivies et validées. Et puis l'autre personne a aussi créer un "test.txt" avec le même chemin d'accès et le valider et de le pousser. Maintenant, lorsque vous effectuez un pull action, "test.txt" le fichier est inclus dans la liste action, et vous obtiendrez le message d'erreur qui indique qu'il y a des modifications non validées. Si vous avez besoin de vérifier si vous avez les fichiers de/changements qui n'ont pas été commis et à commettre avant de tirer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X