255 votes

git status affiche des modifications, git checkout -- <file> ne pas les supprimer

Je voudrais supprimer toutes les modifications à la copie de travail.
De l'exécution "git status" montre les fichiers modifiés.
Rien que je ne semble supprimer ces modifications.
E. g.:

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git status
# On branch master
# 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:   Rhino.Etl.Core/Enumerables/CachingEnumerable.cs
#       modified:   Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs
#       modified:   Rhino.Etl.Tests/Rhino.Etl.Tests.csproj
#       modified:   Rhino.Etl.Tests/SingleThreadedPipelineExecuterTest.cs
#
no changes added to commit (use "git add" and/or "git commit -a")

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git checkout -- Rhino.Etl.Core/Enumerables/CachingEnumerable.cs

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git status
# On branch master
# 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:   Rhino.Etl.Core/Enumerables/CachingEnumerable.cs
#       modified:   Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs
#       modified:   Rhino.Etl.Tests/Rhino.Etl.Tests.csproj
#       modified:   Rhino.Etl.Tests/SingleThreadedPipelineExecuterTest.cs
#
no changes added to commit (use "git add" and/or "git commit -a")

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git checkout `git ls-files -m`

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git status
# On branch master
# 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:   Rhino.Etl.Core/Enumerables/CachingEnumerable.cs
#       modified:   Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs
#       modified:   Rhino.Etl.Tests/Rhino.Etl.Tests.csproj
#       modified:   Rhino.Etl.Tests/SingleThreadedPipelineExecuterTest.cs
#
no changes added to commit (use "git add" and/or "git commit -a")

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git reset --hard HEAD
HEAD is now at 6c857e7 boo libraries updated to 2.0.9.2 and rhino.dsl.dll updated.

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git status
# On branch master
# 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:   Rhino.Etl.Core/Enumerables/CachingEnumerable.cs
#       modified:   Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs
#       modified:   Rhino.Etl.Tests/Rhino.Etl.Tests.csproj
#       modified:   Rhino.Etl.Tests/SingleThreadedPipelineExecuterTest.cs
#
no changes added to commit (use "git add" and/or "git commit -a")

252voto

Rian Sanderson Points 1019

J'ai eu ce problème sur Windows, mais n'était pas préparé à le regarder dans les ramifications de l'utilisation de config --global core.autocrlf false , je n'ai pas préparé à abandonner les autres, les branches et les goodies dans ma cachette et de commencer avec un nouveau clone. J'ai juste besoin de faire quelque chose. Maintenant.

Cela a fonctionné pour moi, sur l'idée que vous laissez git de réécrire votre répertoire de travail:

git rm --cached -r .
git reset --hard

(Notez que l'exécution de juste git reset --hard n'était pas assez bon, ni un plain rm sur les fichiers avant de l' reset comme suggéré dans les commentaires à la question d'origine)

139voto

Ikke Points 31517

Essayez ceci:

git config --global core.autocrlf false

J'ai eu ce genre de problèmes. Il descend à git de la conversion automatique crlf à la fl. Pourquoi il me dit que les fichiers sont modifiés n'est pas vraiment clair pour moi non plus.

Edit:

Le git pages de manuel de dire ceci:

http://www.kernel.org/pub/software/scm/git/docs/v1.7.3/git-config.html

CRLF conversion porte une petite chance de la corruption des données. autocrlf=true convertir CRLF à la FL au cours de commettre et LF à CRLF lors de votre commande. Un fichier contient un mélange de LF et CRLF avant que la validation ne peut pas être recréé par git. Pour les fichiers texte c'est l' bonne chose à faire: il corrige la ligne terminaisons telles que nous en avons seulement LF ligne terminaisons dans le référentiel. Mais pour les fichiers binaires qui sont accidentellement classé en tant que texte, la conversion peut de corrompre les données.

79voto

Martin Neal Points 1322

Pour le futur, les personnes ayant ce problème: le fait d'Avoir filemode changements peuvent aussi avoir les mêmes symptômes. git config core.filemode false la corriger.

33voto

Cela a été me rend fou, surtout que je ne pouvais pas résoudre ce sans aucune des solutions trouvées en ligne. Voici comment je l'ai résolu. Ne pouvez pas prendre les crédits ici puisque c'est le travail d'un collègue :)

Programme d'installation: Xubuntu 12.04 Repo Git avec glfw projet

Problème: Impossible de réinitialiser glfw fichiers. Ils montrent toujours que modifiée, indépendamment de ce que j'ai essayé.

Résolu:

edit .gitattributes

Comment out the line:    # text=auto

Save the file

restore .gitattributes:   git checkout .gitattributes

12voto

moo moo Points 55

J'ai eu un .fichier bat avec le même problème (ne pouvais pas m'en débarrasser, il en sans traces de fichiers). git checkout -- ne fonctionne pas, ni l'un quelconque des suggestions sur cette page. La seule chose qui a fonctionné pour moi a été de faire:

git stash save --keep-index

Et puis pour supprimer la cachette:

git stash drop

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