У меня есть репо, в котором есть два файла, которые я предположительно изменил локально.
Итак, я застрял в этом:
$ 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")
Doing git diffговорит, что все содержимое файла изменилось, даже если на глаз это кажется неправдой (похоже, есть общие диапазоны строк, которые diff, похоже, не видит).
Что интересно, я не помню, чтобы эти файлы менялись локально. Это репо используется с одним удаленным репо (частным, на GitHub.com, FWIW).
Что бы я ни пробовал, я не могу отказаться от этих локальных изменений. Я пробовал все:
$ 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
Другими словами, я испробовал все, что описано в разделе Как отменить неустановленные изменения в Git?плюс еще. Но 2 файла остаются "измененными, но не зафиксированными".
Что, черт возьми, могло привести к тому, что два файла застряли вот так и, казалось бы, "не вернули таблицу" ??
PS В приведенном выше списке с командами, которые я уже пробовал, я ошибочно написал, git revertкогда имел в виду git checkout. Прошу прощения и благодарю тех из вас, кто ответил, что я должен попробовать checkout. Я отредактировал вопрос, чтобы исправить. Я определенно уже пробовал checkout.
git diff --ignore-space-changeилиgit diff --ignore-all-spaceсделать разницу в выходеgit diff?