Je veux juste revenir à un répertoire de travail propre, exactement tel qu'il était après ma dernière commission. Git se rapporte à moi une charge de modifications de fichiers que je n'ai pas faites, alors je soupçonne que c'est quelque chose à voir avec des terminaisons de ligne.
J'ai essayé tous les suspects habituels de le faire: P>
< code> GIT RESET --HARD CODE>
Peu importe ce que je fais, puis j'essaie ce qui est suggéré et tout ce que je pouvais trouver: p> Comme vous pouvez le constater, aucun changement malgré le Rollback. P> Alors j'ai suivi des conseils et j'ai dirigé une différence d'ignorer tout espace, et comme soupçonné qu'il semble qu'il n'y ait aucune différence lors de l'ignorance des espaces - donc je suppose que c'était donc des terminaisons de ligne! Que puis-je faire pour résoudre ce problème? J'ai défini sur GIT COMMIS -. CODE>
git cachette code>
Git Clean -FD Code> P>
Statut GIT code> affiche toujours les mêmes fichiers que ceux ayant été modifiés. Que puis-je faire? J'ai des changements non engagés cachés dans une autre branche, donc je ne veux donc pas simplement éloigner tout, mais plutôt simplement "roulez" ma branche principale. P>
autocrilf code> à
vrai code> en vain. P> p>
5 Réponses :
Si vous voulez simplement modifier un fichier à la manière dont il était après la dernière validation, il suffit de faire un Git Checkout [Fichier] Code> pour obtenir un fichier particulier. Mais un
git réinitialiser --Hard code> aurait dû faire cela à l'arbre entier. Si vous pensez que ce n'est que des terminaisons de ligne, effectuez un
GIT DIFF code>, puis un
GIT DIFF-DIFF-SPACE CODE>. Si le premier diff montre des modifications et la seconde ne le fait pas, au moins vous savez que vous avez un problème de fin de ligne, auquel cas vous voudrez peut-être examiner cette description de Git et fins de ligne . P>
Merci, ignorer l'espace n'a montré aucun diff dans des fichiers, doit donc être des terminaisons de ligne. Suivra l'article GitHub. J'espère éviter une validation spécifique pour la fixation des fins de ligne, mais devinez-vous.
Essayez l'approche expliquée dans la section "Re-normalisant une repo" de Cette Article GitHub après EM> Assurez-vous que vos paramètres EOL ont des valeurs raisonnables (pour votre stratégie de système d'exploitation et de repo) p>
en effet git rm - cached -r. code> avant
git reset --hard code> a travaillé pour moi
Entre les deux déclarations, je devais faire un git add -a, mais cela a travaillé sur ma fin d'aswell.
Si GIT pense que vos fichiers sont modifiés en raison de ses tentatives visant à normaliser automatiquement les terminaisons de ligne (qui seront tristes si Pour éteindre la ligne de fin de la modification de votre projet, ouvrir ou créer si le fichier existait et comporte un paramètre différent pour git diff code> montre des différences, mais
Git Diff-In-tout- L'espace code> n'est pas), votre meilleure solution peut être de désactiver la modification de la ligne de fin de ligne pour votre projet. Cela fonctionne bien si votre équipe utilise toutes la même plate-forme (Windows, Linux, etc.) pour un ensemble donné de fichiers.
.gitattributes code > à la racine de votre référentiel. Assurez-vous que le fichier contient cette ligne: p>
* code>, tel que
* auto code>, remplacez-le par la ligne ci-dessus. p> p>
dans mon cas ni caisse git -. code> ni
git reset --hard code> ni
git clean -fd. code> aida quelle que soit la Commande - Il y avait encore un répertoire à gauche qui a été "modifié". Donc, j'ai changé dans le répertoire particulier et exécuter
Git Checkout -. Code> à partir d'ici. Je ne sais pas exactement les raisons sous-jacentes pour lesquelles je devais d'abord changer le répertoire, mais il a étonnamment contribué à vous débarrasser de ces modifications. P>
Merci - cela a aidé. Pourquoi de telles choses se produisent-elles toujours?
contribuer à mon cas:
Il y avait un fichier qui avait un état code> modifié code> et je n'ai pu réinitialiser ce fichier à l'aide de Il s'est avéré que quelqu'un sur un système de fichiers sensible à une casse (Linux) avait accidentellement commis deux fichiers avec le même nom, mais dans différents cas et contenus différents . Et quand j'ai ouvert ce repo sur un système de fichiers insensé (MacOS, Windows), Git pensait que c'est le même fichier et l'a toujours montré qu'il est "modifié" de donc, je viens de supprimer un fichier non pertinent et je n'ai que sorties un. p> p> git reset --hard code>. Aucune des commandes ci-dessus m'a aidé, le fichier a juste été toujours dans l'état modifié.
Ce qui était plus intéressant, c'est que cette question a persisté même après le nouveau clone! Mais Git m'a donné un indice: myfile.kt code> à
Myfile.kt code> ou à partir de
myfile.kt code> à
myfile.kt code>. P>
Avez-vous essayé de demander
git diff code> pour savoir quelle est la modification?
Oui, j'avais fait ça, c'est essentiellement dire que chaque ligne a changé, c'est pourquoi je pensais que quelque chose à voir avec les fins de la ligne. Étrange si tout mon travail est fait sur un système d'exploitation sur un ordinateur, donc pas sûr de savoir comment cela peut être arrivé
Est-ce que cela se produit même avant i> vous ouvrez les fichiers dans un éditeur de texte après la réinitialisation? Une fois, j'ai découvert que mon EDI était "utile" changer de ligne de ligne pour moi sans que je demande, en raison de la préférence folle que j'avais définie il y a des mois ...
Pouvez-vous poster la partie pertinente du statut GIT CODE> SORTIE CODE>?