Почему команды Git для отмены изменений различаются в зависимости от того, где сейчас находится изменение?
Рабочее дерево, область подготовки и история коммитов — это разные состояния, и каждая команда работает с определёнными состояниями.
Все команды отмены изменяют только удалённый репозиторий.
Поведение отмены зависит только от расширения файла.
В Git есть только одно состояние, поэтому все команды отмены взаимозаменяемы.