Message d'erreur git de Visual Studio 2015 " impossible de tirer / basculer parce qu'il y a des changements non engagés"
j'ai de la difficulté à tirer de origin
. Je reçois:
" impossible de tirer parce qu'il y a des changements non engagés. Valider ou annuler vos modifications avant de tirer de nouveau. Voir la fenêtre de Sortie pour plus de détails."
s'applique également aux branches de commutation. Je reçois un message similaire, mais ce n'est pas toujours le cas.
j'utilise Visual Studio 2015 Update 1 et Visual Studio Team Services Git. Sur ma machine, j'ai une branche locale master
, et des branches de développement. Chaque fois que je passe à master
et que je tire, je reçois le message d'erreur. J'ai eu recours à faire une stash and drop stash (ligne de commande) et parfois j'utilise TortoiseGit pour faire la traction et cela fonctionne.
ce qui est étrange, c'est que même si j'essaie de revenir en arrière (sur les fichiers non engagés) en utilisant TortoiseGit, cela montre qu'il a été inversé avec succès (I ont déjà essayé Visual Studio undo, rien ne se passe). Essayer de tirer à nouveau, c'est toujours le même problème. Les fichiers non engagés seront là et parfois quand je fais un git status
il dit qu'il n'y a rien à commettre.
juste une note: cela peut se produire même après passage d'une branche sur master
. Dans ce cas, il n'y a aucun moyen qu'il puisse y avoir des changements non engagés, parce que je n'aurais pas été capable de changer en premier lieu.
je suis encore nouveau pour Git, mais j'aimerais savoir s'il y a une meilleure façon de résoudre ce problème car je voudrais utiliser un environnement au lieu d'utiliser la commutation entre 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 qu'une fin de ligne a été ajoutée," ^m", et il est différent. Supprimer le * text=auto
dans gitattributes (puis vérifier les changements) et le remettre en marche pour que gitattributes ne signale pas un changement de lui-même qui doit être engagé semble aider, il n'y aura pas de changements.
10 réponses
pour moi, je n'avais pas de modifications non engagées ni de fichiers non tracés, et Visual Studio 2015 a quand même présenté l'avertissement.
- fermer la solution dans Visual Studio, sortie Visual Studio.
- Ouvrir
Git Bash
(ou votre favori Git de l'INTERFACE utilisateur) - Accédez à votre espace de stockage (ou ouvrez le référentiel avec le Git de l'INTERFACE utilisateur)
-
git pull
(ou effectuer tirez sur le Git de l'INTERFACE utilisateur) - Fusion se passe (j'espère pas de conflits, comme dans mon cas),
vi
s'ouvre (ou la fusion par défaut l'outil de résolution) -
:wq
puis appuyez surENTER
dansvi
(ou serrez la poignée de l'outil de fusion qui a surgi en option) et si tout va bien cela résout comme pour moi. - démarrer Visual Studio 2015, ouvrir le projet
j'ai ajouté une étape par étape plus sûre instruction de fermer et d'ouvrir la solution et Visual Studio. C'est peut-être plus prudent, et peut-être un rechargement serait suffisant. Ce symptôme pourrait être un bug des pièces D'intégration Git de Visual Studio, et peut-être qu'il 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 pas ajouté et engagé. Soit retourner les fichiers (en faisant git checkout -- <file>
), soit ajouter et commit (en faisant git add --all
puis git commit -m "commit message"
). Vous pouvez ensuite vérifier les branches ou tout ce que vous voulez faire d'autre.
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
ce problème se produit généralement lorsqu'il y a un fichier/changement qui n'a pas été engagé localement, mais qui est inclus dans l'action pull.
Par exemple, vous ajoutez un nouveau fichier "test.txt" à partir de votre dossier de dépôt Git local directement (en dehors de Visual Studio). Ce fichier peut être répertorié dans l'option" Untracked Files", donc lorsque vous propagez des modifications, ce fichier n'est pas suivi et engagé. Et puis une autre personne crée aussi un "test".txt" avec le même chemin et commit & push il. Maintenant, quand vous effectuez une action de traction, "test.txt " fichier est inclus dans l'action pull et vous obtiendrez le message d'erreur qui indique qu'il y a des changements non engagés. Vous devez donc vérifier si vous avez des fichiers/modifications qui n'ont pas été engagés et les propager avant de tirer.
j'ai eu ce problème dans Visual Studio 2017 construire 15.5 et ce qui l'a corrigé pour moi allait dans L'équipe Explorer paramètres → Paramètres globaux et le réglage " Prune branches distantes pendant fetch " et " branche locale de Rebase en tirant "à vrai .
j'ai eu ce problème aussi. Une solution facile était que j'ai choisi Commit sur la solution pour voir les fichiers non engagés (ou facilement utiliser Team Explorer → change ).
puis je défais chaque fichier en cliquant avec le bouton droit de la souris. Avant, je l'ai testé par Undo sur l'ensemble de la solution, mais il n'a pas fonctionné correctement. Puis encore, j'ai utilisé Team Explorer → Sync → Pull , et ça a marché.
Pour moi, la "mise à Jour" dans la question était la réponse. J'ai ajouté un .gitattribute le fichier à la racine de mon dépôt et inclus seulement les suivants, de sorte que les fins de ligne ne seraient 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)
*.gitattributes text
.gitignore text
*.md texttesting
Voici les étapes que j'ai suivies:
- reportez-vous à la voie de la non validées fichier dans la fenêtre de sortie
- naviguez vers ce chemin et supprimez ce fichier du dossier
- annuler vos changements de Team Explorer Dans Visual Studio pour l'ajouter à nouveau
ça a marché pour moi. Je suis juste allé à l'annuaire du projet et vérifié si quelque chose est là
git status
puis j'ai effectué une traction en utilisant
git pull
puis J'ai redémarré Visual Studio 2015 et j'ai retiré la branche qui causait cette erreur. Cette fois, sans problème. Il semble que C'était un bug Dans Visual Studio 2015.Il se produit seulement quand vous annulez vos changements avant de tirer de nouveaux changements. Ce problème ne semble pas être existant dans Visual Studio 2017.
cela arrive même parfois avec moi. Si vous utilisez Visual Studio, il est un moyen facile de faire votre chemin clair.
pour Visual Studio 2013 et au-dessus, suivez les instructions suivantes car cela a fonctionné pour moi:
- allez au menu outils → NuGet Package Manager → Console du Gestionnaire de paquets .
- Type
git reset
et appuyez sur entrez
C'est tout. Git sera réinitialisé et alors vous pourrez retirer votre demande facilement.
VS2015: outils > Nuget Package Manager > Package manager console. A travaillé comme un charme. Grâce.