変更が現在どこに存在するかによって、Git の undo コマンドが異なるのはなぜですか?
working tree、staging area、commit history はそれぞれ異なる状態であり、各コマンドは特定の状態を対象とするためです。
undo の動作はファイルの拡張子だけで決まるためです。
Git には状態が 1 つしかないため、すべての undo コマンドは同じように使えるためです。
すべての undo コマンドはリモートリポジトリだけを変更するためです。