Message d’erreur Visual Studio 2015 Git «Impossible de tirer / basculer car il y a des modifications non validées»

J’ai de la difficulté à tirer de l’ origin . Je continue à recevoir:

“Impossible de tirer car il y a des modifications non validées. Validez ou annulez vos modifications avant de tirer à nouveau. Voir la fenêtre Sortie pour plus de détails.”

Cela vaut également pour le changement de twig. Je reçois un message similaire, mais cela ne se produit pas toujours.

J’utilise Visual Studio 2015 Update 1 et Visual Studio Team Services Git. Sur ma machine, j’ai une twig master locale et des twigs de développement. Chaque fois que je passe en master et que je tire, je reçois le message d’erreur. J’ai eu recours à une cachette et à une réserve (ligne de commande) et parfois j’utilise TortoiseGit pour faire le pull et ça marche.

Ce qui est étrange, c’est que même si j’essaie de revenir (sur les fichiers non validés) à l’aide de TortoiseGit, cela montre qu’il a été rétabli avec succès (j’ai déjà essayé Visual Studio à annuler, rien ne se passe). Essayer de tirer à nouveau, c’est toujours le même problème. Les fichiers non validés seront là et parfois, quand je fais un git status cela signifie qu’il n’y a rien à valider.

Juste une note: cela peut se produire même après le passage d’une twig à un master . Dans ce cas, il n’ya aucun moyen de procéder à des modifications non validées, car je n’aurais pas été en mesure de changer d’entrée.

Je suis toujours nouveau sur Git, mais j’aimerais savoir s’il existe une meilleure façon de résoudre ce problème, car je voudrais utiliser un seul environnement au lieu d’utiliser différents environnements pour chaque tâche. il est plus facile pour moi de tout faire depuis Visual Studio. J’ai déjà lu sur:

TFS / GIT dans VS Impossible de passer en mode maître car il y a des modifications non validées

METTRE À JOUR

Il semble que ce problème concerne les fins de ligne.

En faisant un git diff -R vous pouvez voir qu’une fin de ligne a été ajoutée, “^ M”, et c’est différent. Supprimer le * text=auto dans gitatsortingbutes (puis vérifier les modifications) et le remettre en place pour que le gitatsortingbutes ne signale pas un changement de lui-même qui doit être commis semble aider, il n’y aura aucun changement.

Pour moi, je n’avais aucune modification non validée ni aucun fichier non suivi, et Visual Studio 2015 présentait toujours l’avertissement.

  1. Fermez la solution dans Visual Studio, quittez Visual Studio.
  2. Open Git Bash (ou votre interface utilisateur Git préférée)
  3. Accédez à votre référentiel (ou ouvrez le référentiel avec l’interface utilisateur Git)
  4. git pull (ou tirer sur l’interface utilisateur Git)
  5. La fusion se produit (heureusement aucun conflit, comme dans mon cas), vi ouvre (ou l’outil de résolution de fusion par défaut)
  6. :wq puis appuyez sur ENTER dans vi (ou calmez l’outil de fusion qui a surgi en option) et j’espère que cela résoudra comme pour moi.
  7. Démarrez Visual Studio 2015, ouvrez le projet

J’ai ajouté une étape par étape plus sûre en demandant la fermeture et l’ouverture de la solution et de Visual Studio. Cela peut être trop prudent, et peut-être qu’un rechargement suffirait. Ce symptôme pourrait être un bogue des parties d’intégration de Visual Studio Git, et peut-être que cela sera résolu à l’avenir.

Tapez git status dans une ligne de commande ouverte dans ce répertoire. S’il y a du texte rouge et / ou vert, vous avez changé certaines choses et non ajouté et validé. Rétablissez les fichiers (en faisant git checkout -- ), ou ajoutez et validez (en faisant git add --all puis git commit -m "commit message" ). Vous pouvez alors vérifier les twigs ou tout ce que vous voulez faire.

Essayez avec ces commandes en allant dans 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 

Ce problème se produit généralement lorsque des fichiers / modifications n’ont pas été validés localement, mais qu’ils sont inclus dans l’action Pull.

Par exemple, vous ajoutez un nouveau fichier “test.txt” à partir de votre dossier de référentiel Git local (en dehors de Visual Studio). Ce fichier peut être répertorié dans l’option “Fichiers non suivis”. Ainsi, lorsque vous validez des modifications, ce fichier n’a pas été suivi et validé. Et puis une autre personne crée aussi un “test.txt” avec le même chemin et le valide et le pousse. Maintenant, lorsque vous effectuez une action d’extraction, le fichier “test.txt” est inclus dans l’action d’extraction et vous obtiendrez le message d’erreur indiquant qu’il existe des modifications non validées. Vous devez donc vérifier si vous avez des fichiers / modifications non validés et les valider avant de tirer.

J’ai eu ce problème dans Visual Studio 2017 build 15.5 et ce qui a été corrigé pour moi était d’aller dans les parameters de Team Explorer → Paramètres globaux et en définissant ” Prune twigs distantes lors de l’extraction ” et ” Rebase twig locale en tirant ” sur True .

J’ai eu ce problème également. Une solution simple a été de sélectionner Commit sur la solution pour voir les fichiers non validés (ou utiliser facilement Team ExplorerModifications ).

Ensuite, je défais chaque fichier en cliquant avec le bouton droit de la souris. Avant, je l’ai testé par Annuler sur la solution complète, mais cela ne fonctionnait pas correctement. Ensuite, j’ai utilisé Team ExplorerSyncPull , et cela a fonctionné.

Pour moi, la “mise à jour” dans la question était la réponse. J’ai ajouté un fichier .gitatsortingbutes à la racine de mon référentiel et n’incluais que les éléments suivants, afin que les fins de ligne ne soient normalisées que dans les cas où le fichier est du texte.

 *.txt text *.html text *.css text *.js text # These files are text and should be normalized (Convert crlf => lf) *.gitatsortingbutes text .gitignore text *.md texttesting 

Voici les étapes que j’ai suivies:

  1. Reportez-vous au chemin du fichier non validé dans la fenêtre de sortie
  2. Naviguez jusqu’à ce chemin et supprimez ce fichier du dossier
  3. Annulez vos modifications depuis Team Explorer dans Visual Studio pour les append à nouveau

Cela a fonctionné pour moi. Je suis juste allé dans le répertoire du projet et vérifié si quelque chose est là

 git status 

Ensuite, j’ai tiré en utilisant

 git pull 

Ensuite, j’ai redémarré Visual Studio 2015 et retiré la twig à l’origine de cette erreur. Cette fois sans problème. Il semble que ce soit un bogue dans Visual Studio 2015. Cela se produit uniquement lorsque vous annulez vos modifications avant de procéder à de nouvelles modifications. Ce même problème ne semble pas exister dans Visual Studio 2017.

Cela arrive parfois même avec moi. Si vous utilisez Visual Studio, il existe un moyen simple de vous éclairer.

Pour Visual Studio 2013 et versions ultérieures, suivez les instructions suivantes, car cela a fonctionné pour moi:

  • Allez dans le menu OutilsGestionnaire de paquets NuGetConsole du gestionnaire de paquets .
  • Tapez git reset et appuyez sur Entrée

C’est tout. Git sera réinitialisé et vous pourrez alors extraire facilement votre demande.

VS2015: Outils> Gestionnaire de packages Nuget> Console du gestionnaire de packages. Travaillé comme un charme. Merci.