svnのときはrevertすればいいのだが、gitではリモートリポジトリにpushするまでのステップ数が多いのでややこしい。各ステップで巻き戻し方が異なるので、使い分けが必要。 この記事でそれらの方法についてまとめる。 最も確実な方法 ローカルリポジトリの変更を完全に破棄して構わない場合、リモートリポジトリから git clone し直すのが最も確実である。 これはたぶん、最後の手段になる。 ただこれだとpushは取り消せないので、そのやり方は後述する。 ローカル編集を消したい。 まだaddすらしていない状態だけど、行った変更を取り消したい。 そんなときは以下を打つ。 git checkout <path><path>にディレクトリを指定すれば、再帰的にcheckoutしてくれる。 ワーキングツリーの変更を全部取り消していい場合は、次のコマンドでもいい。 git reset --hard