142 votes

Impossible de supprimer les modifications dans Git

Après avoir vu ce qui suit sur la ligne de commande :

# On branch RB_3.0.10
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   index.htm

J'essaie d'annuler mes modifications en tapant la commande :

git checkout -- index.htm

mais quand je relance git status, c'est exactement la même chose. Le checkout ne semble pas fonctionner. Est-ce que je fais quelque chose de mal ? J'utilise GIT 1.6.1.2 sous Windows/cygwin.

# On branch RB_3.0.10
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   index.htm

6voto

Fil Points 135

Êtes-vous sous OSX ou Windows ? Si c'est le cas, le problème est probablement d'avoir deux fichiers du même nom, avec des majuscules différentes. Par exemple, index.htm et Index.htm.

Windows, et par défaut OSX, utilise un système de fichiers insensible à la casse, ce qui entre en conflit avec le système git sensible à la casse.

3voto

Eldar Points 31

J'ai eu ce problème et après avoir essayé toutes les solutions ci-dessus, rien n'a fonctionné.

Ce qui a fonctionné pour moi, c'est de supprimer le répertoire dans lequel se trouvait le fichier, puis de faire git status et je me suis assuré que tous les fichiers de ce répertoire sont maintenant marqués comme supprimés. Après cela, j'ai simplement fait git checkout -f et tout est revenu à la normale.

2voto

joe Points 31

J'ai eu le même problème, rien des commentaires ci-dessus n'a fonctionné. Il s'est avéré que mon système de fichiers n'est pas sensible à la casse (osx par défaut, mais Windows se comporte probablement de la même façon) et qu'un fichier était présent à la fois en majuscules et en minuscules dans le même répertoire, avec un contenu différent. Comme sur mon ordinateur les deux noms pointaient vers le même fichier, le statut de git montrait toujours une modification, quoi que je fasse. Pour résoudre le problème :

  • J'ai dû retirer un des fichiers d'un autre ordinateur et le pousser dans le dépôt.

  • supprimer complètement la version locale

  • faire un clone git à partir de zéro

2voto

Mike Diente Points 131

Mon problème est un peu similaire ici et je viens de découvrir que git suit les changements de permission des fichiers. J'ai essayé de supprimer et de réinitialiser la branche mais les fichiers sont toujours là. Exécutez git config --get --local core.filemode S'il est vrai, vous devez le définir comme faux pour désactiver le suivi des autorisations de fichiers. Exécution de git config --local core.fileMode false devrait le résoudre. Vous pouvez lire plus aquí

1voto

James Jithin Points 2573

J'avais un fichier .gitattributes avec le contenu suivant :

* text=auto eol=lf

Pour résoudre ce problème, modifiez .gitattributes pour supprimer cette ligne qui assouplit les fins de ligne. Ensuite, git reset --hard HEAD a rétabli les fichiers et .gitattributes archivo.

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