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

0voto

Waqleh Points 1048

Je travaillais sur un libGDX projet sur Android Studio et je voulais supprimer toutes les modifications que j'avais faites, et rien ne fonctionnait pour moi, la solution que j'ai trouvée était de commettre toutes les modifications dans une nouvelle branche

git checkout -b TRASH
git add .
git commit -m "discarded changes"
git checkout master

et ensuite vous pouvez supprimer le TRASH branche si vous le souhaitez.

0voto

Noumenon Points 252

J'ai eu un problème de permissions dans Windows et j'ai dû faire icacls containingFolder /reset /t /l /c et ensuite double-cliquer sur le dossier pour récupérer mes permissions.

0voto

Knogobert Points 156

Pour moi, ce problème est apparu avec une combinaison de téléchargement d'une image Git-LFS qui a été téléchargée via Netlify CMS et servie différemment par leur gestionnaire Netlify Large Media.

Ma solution a été de commenter/supprimer ces lignes de mon fichier ~/.gitconfig de façon à ce qu'ils ressemblent à ceux ci-dessous, puis en vérifiant git status encore.

# [filter "lfs"]
#   clean = git-lfs clean %f
#   smudge = git-lfs smudge %f
#   required = true

OU vous pouvez probablement ajouter un filtre plus local via un fichier .gitconfig dans le repo Root et d'une certaine manière écraser les règles de filtrage pour lfs là.

J'espère que cela aidera un ami.

0voto

Shenk Points 187

Beaucoup de ces réponses résolvent le problème pour une des nombreuses questions. Ainsi, vous devrez peut-être en essayer quelques-unes jusqu'à ce que vous trouviez celle qui posait problème. Je vais donc ajouter ma propre expérience au mélange.

Dans mon cas, le problème était que j'avais un fichier global ~/.gitattributes dans mon ~/.gitconfig . Lorsque j'ai finalement examiné ce fichier, j'ai pu trouver l'extension problématique et la rectifier manuellement.

Spécifiquement pour le repo problématique avec lequel je travaillais, *.bat être nécessaire -text eol=crlf au lieu de text eol=crlf .

0voto

Thomson Points 3092

J'ai le même problème et j'ai core.autocrlf=false config.

Il s'avère que le problème que j'ai rencontré est que j'ai ajouté * text eol=lf a .gitattibutes et l'a livré au dépôt sans convertir CRLF en LF dans tous les fichiers existants. Ainsi, ces fichiers sont affichés comme modifiés même dans un autre clone frais du dépôt. Il est un peu bizarre que git status rapports les fichiers sont modifié même s'ils ont le même CRLF dans le répertoire de travail git et dans la zone de stage. Il me semble que modifié implique que si le fichier est ajouté et validé, il y aura des changements non vides basés sur la configuration actuelle.

Alors je git add tous les fichiers et les a livrés (en confirmant que la livraison inclut la conversion de CRLF->LF), et n'a plus reçu le rapport des fichiers modifiés.

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