У меня есть репо, у которого есть два файла, которые, предположительно, я изменил локально.
Итак, я застрял в этом:
$ 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")
Выполнение git diff
говорит о том, что все содержимое файла изменилось, хотя из глазного яблока это кажется неверным (кажется, есть общие линейные диапазоны, которые diff, кажется, не видят).
Интересно, что я не помню, как менялись эти файлы локально. Это репо используется с одним удаленным репо (private, на 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? и больше. Но эти два файла остаются "измененными, но не зафиксированными".
Какая черта приведет к тому, что два файла будут застревать как это и, казалось бы, "un-revert-table"??
P.S. В приведенном выше списке показаны команды, которые я уже пробовал, я ошибочно написал git revert
, когда имел в виду git checkout
. Простите, спасибо вам, кто ответил, что я должен попробовать checkout
. Я отредактировал вопрос, чтобы исправить это. Я определенно уже попробовал checkout
.