Ich habe ein Repo mit zwei Dateien, die ich angeblich lokal geändert habe.
Also bleibe ich dabei:
$ 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: dir1/foo.aspx
# modified: dir2/foo.aspx
#
no changes added to commit (use "git add" and/or "git commit -a")
Wenn Sie dies tun git diff
, ändert sich der gesamte Dateiinhalt, auch wenn dies nicht wahr ist (es scheint gemeinsame Zeilenbereiche zu geben, die diff nicht zu sehen scheint).
Interessanterweise kann ich mich nicht erinnern, diese Dateien lokal geändert zu haben. Dieses Repo wird mit einem Remote-Repo verwendet (privat, bei GitHub.com, FWIW).
Egal was ich versucht habe, ich kann diese lokalen Änderungen nicht verwerfen. Ich habe alles versucht:
$ git checkout -- .
$ git checkout -f
$ git checkout -- dir1/checkout_receipt.aspx
$ git reset --hard HEAD
$ git stash save --keep-index && git stash drop
$ git checkout-index -a -f
Mit anderen Worten, ich habe alles versucht, was unter Wie verwerfe ich nicht bereitgestellte Änderungen in Git? und mehr. Die 2 Dateien bleiben jedoch als "geändert, aber nicht festgeschrieben" hängen.
Was zum Teufel würde dazu führen, dass zwei Dateien so hängen bleiben und scheinbar "Tabelle nicht wiederherstellen"?
PS In der obigen Liste mit Befehlen, die ich bereits ausprobiert hatte, habe ich fälschlicherweise geschrieben, git revert
als ich meinte git checkout
. Es tut mir leid und ich danke denen von Ihnen, die geantwortet haben, dass ich es versuchen sollte checkout
. Ich habe die Frage bearbeitet, um sie zu korrigieren. Ich habe es definitiv schon versucht checkout
.
git diff --ignore-space-change
odergit diff --ignore-all-space
macht es einen Unterschied in der Ausgabe vongit diff
?