У меня есть репо, в котором есть два файла, которые я предположительно изменил локально.
Итак, я застрял в этом:
$ 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
?