J'ai de la difficulté à tirer de Origin
. Je continue à recevoir:
"Impossible de tirer parce qu'il y a des modifications non validées. Validez ou annulez vos modifications avant de les extraire à nouveau. Voir la fenêtre de sortie pour plus de détails."
Cela s'applique également à la commutation de branches. Je reçois le même genre de message, mais cela n'arrive pas toujours.
J'utilise Visual Studio 2015 Update 1 et Visual Studio Team Services Git. Sur ma machine, j’ai une branche master
locale et des branches de développement. Chaque fois que je passe à master
et que je fais un pull, je reçois le message d'erreur. J'ai eu recours à une cachette et laisser tomber stash (ligne de commande) et parfois j'utilise TortoiseGit pour faire le pull et ça marche.
Ce qui est étrange est que même si j'essaye de restaurer (sur les fichiers non validés) à l'aide de TortoiseGit, cela indique que l'opération a été restaurée avec succès (j'ai déjà essayé d'annuler Visual Studio, rien ne se produit). 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
il dit qu'il n'y a rien à commettre.
Remarque: cela peut se produire même après le passage d'une branche à master
. Dans ce cas, il n’ya aucun moyen d’apporter des modifications non validées car je n’aurais pas pu changer en premier lieu.
Je suis encore nouveau dans Git, mais j'aimerais savoir s'il existe un meilleur moyen de résoudre ce problème, car j'aimerais 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 depuis Visual Studio. J'ai déjà lu sur:
TFS/GIT dans VS ne peut pas basculer en 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 ligne se terminant, "^ M", a été ajoutée et qu'elle est différente. Supprimer le * text=auto
dans gitattributes (puis vérifier les modifications) et le réactiver afin que les attributs gitattutes ne signalent pas un changement de lui-même qui doit être engagé semble aider, il n'y aura aucun changement.
Pour moi, je n'ai pas eu de modifications non validées ni de fichiers non suivis, et Visual Studio 2015 a quand même présenté l'avertissement.
Git Bash
(ou votre interface utilisateur Git préférée)git pull
(ou tirez sur l'interface utilisateur de Git)vi
s'ouvre (ou l'outil de résolution de fusion par défaut):wq
puis appuyez sur ENTER
dans vi
(ou calmer manipulez l'outil de fusion qui est apparu en option) et j'espère que cela résoudra le problème comme pour moi.J'ai ajouté une solution plus sécurisée étape par étape en demandant à la solution de fermer et d’ouvrir la solution ainsi que Visual Studio. Cela peut être trop prudent, et peut-être qu'une recharge suffirait. Ce symptôme pourrait être un bogue des composants d'intégration Visual Studio Git, et il sera peut-être 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 modifié des éléments et non ajouté et validé. Retournez les fichiers (en faisant git checkout -- <file>
) ou ajoutez et validez (en faisant git add --all
puis git commit -m "commit message"
). Vous pouvez ensuite consulter les succursales ou tout ce que vous voulez faire.
Essayez avec ces commandes en allant dans le répertoire de travail du projet dans la commande Invite.
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'un fichier/une modification n'a pas été validé localement, mais qu'il est inclus dans l'action d'extraction.
Par exemple, vous ajoutez un nouveau fichier "test.txt" directement à 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'est ni suivi ni validé. Et puis, une autre personne crée également un "test.txt" avec le même chemin et valide le résultat. Désormais, lorsque vous effectuez une opération d'extraction, le fichier "test.txt" est inclus dans l'action d'extraction et vous obtenez 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 les extraire.
Cela a fonctionné pour moi. Je suis juste allé dans le répertoire du projet et j'ai vérifié s'il y avait quelque chose
git status
Ensuite, j'ai effectué un pull en utilisant
git pull
Ensuite, j'ai redémarré Visual Studio 2015 et extrait la branche à l'origine de cette erreur. Cette fois-ci, sans problème… .. Il semble que ce soit un bogue dans Visual Studio 2015. Il ne se produit que lorsque vous annulez vos modifications avant d'extraire les nouvelles modifications. Ce même problème ne semble pas exister dans Visual Studio 2017.
J'avais ce problème dans Visual Studio 2017 build 15.5 et ce qui était résolu pour moi était d'aller dans Team Explorer Paramètres → Paramètres généraux et paramètre "Élaguer les branches distantes lors de l'extraction" et "Redéfinissez la branche locale lorsque vous tirez "sur True.
MS a également les instructions ici: https://docs.Microsoft.com/en-us/Azure/devops/repos/git/git-config?tabs=visual-studio&view=vsts#Prune-remote-branches-during -fetch Le moment de facepalm est celui où vous réalisez que "Nous vous recommandons de définir cette option sur True au niveau global." n'est pas le paramètre par défaut sur ces éléments.
Cela arrive parfois même avec moi. Si vous utilisez Visual Studio, il existe un moyen simple de préciser votre chemin.
Pour Visual Studio 2013 et les versions ultérieures, suivez les instructions suivantes, car cela a fonctionné pour moi:
git reset
et appuyez sur EnterC'est tout. Git sera réinitialisé et vous pourrez alors extraire facilement votre demande.
VS2015: Outils> Gestionnaire de paquets Nuget> Console du gestionnaire de paquets. Travaillé comme un charme. Merci.
J'ai eu ce problème également. Une solution simple consistait à sélectionner Commit sur la solution pour voir les fichiers non validés (ou à utiliser facilement Team Explorer → Modifications ).
Ensuite, j'annule chaque fichier à l'aide d'un clic droit. Avant, je l’avais testée par Undo sur toute la solution, mais cela ne fonctionnait pas correctement. Là encore, j'ai utilisé Team Explorer → Sync → Pull , et cela a fonctionné.
Voici les étapes que j'ai suivies:
Dans Visual Studio
, ouvrez Output Window
et passez de Show output from
à Source Control - git
, git
vous indiquera ce qui l'empêche de tirer. Une des causes les plus courantes peut bien sûr être quelque chose comme ceci:
The pull would overwrite your local changes to the following 44 files:
<Here you can probably see a list of 44 files>
Cela signifie simplement que 44 fichiers ont été ajoutés au référentiel remote
qui ne font pas partie du référentiel local
. Ouvrez Git Bash
et exécutez cette commande:
git add *
Cela peut résoudre le problème ou aboutir à une erreur comme celle-ci:
$ git add *
The following paths are ignored by one of your .gitignore files:
TestResults
Use -f if you really want to add them.
Si vous êtes sûr de les ajouter à la reproduction local
, ajoutez-les simplement à l'aide de git add * -f
ou supprimez les fichiers ajoutés par erreur de remote
.
J'espère que cela t'aides.
Pour moi, la "Mise à jour" de la question était la réponse. J'ai ajouté un fichier .gitattributes à la racine de mon référentiel et inclus uniquement les éléments suivants, de sorte 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)
*.gitattributes text
.gitignore text
*.md texttesting
Pour moi, ce problème était dû au fait que deux fichiers, "Web.Config" et "web.config". Je suppose que cela convient sous Linux/Unix, mais Windows ne peut en stocker qu’un localement. Je l'ai détecté dans Azure Devops explorant les fichiers. J'ai supprimé l'un d'eux et le problème a été résolu. Je suppose que ce problème pourrait être causé par n'importe quel fichier.