У мене є репо, що містить два файли, які я нібито змінив локально.
Тож я застряг у цьому:
$ 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, здається, не бачать).
Цікаво, що я не пам’ятаю, щоб локально міняв ці файли. Це репо використовується з одним віддаленим репо (приватне, на 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? плюс більше. Але два файли залишаються застряглими як "змінені, але не скоєні".
Чого б це могло призвести до того, що два файли застрягли так і, здавалося б, "скасувати повернення таблиці" ??
PS У наведеному вище списку команд, які я вже пробував, я помилково написав, git revert
маючи на увазі git checkout
. Вибачте і дякую тим з вас, хто відповів, що я повинен спробувати checkout
. Я відредагував питання, щоб виправити його. Я точно вже спробував checkout
.
git diff --ignore-space-change
абоgit diff --ignore-all-space
робить різницю у випускуgit diff
?