Gitで変更を元に戻す方法【初心者向け】
投稿日: 2025年05月30日
〜git checkout .
を教えてしまったあなたへ〜
はい、これは私です。先程、これを伝えてしまった。そして、自分がアップデートできていなかったことに気付きました・・・
Gitを使っていると、「やっぱりこの変更いらなかったな」「試しに作ったファイル、全部消したい」と思うことってありますよね。
私自身、過去に後輩から「変更を元に戻したいときって、どうすればいいですか?」と聞かれたことがあって、そのときは迷わずこう答えました。
「
git checkout .
を使えば戻せるよ!」
確かにこの方法、以前はよく使われていたんです。でも、今はちょっと違うんです。
git checkout .
は、作業ディレクトリの変更をすべて取り消すコマンドです。つまり、Gitが管理しているファイル(=Trackedファイル)の変更をなかったことにして、最後にコミットした状態に戻してくれます。
一見便利なんですが、実はこのコマンド、「ブランチを切り替える」コマンドと同じだったため、初心者には少しややこしかったんですよね。
そんな背景もあり、Git 2.23以降では、新しいコマンドが登場しました。それが…
git restore
このコマンド、目的がとても明確です。「restore=元に戻す」という意味の通り、変更を戻したいときに使うべきコマンドです。
すべての変更を元に戻す場合:
git restore .
特定のファイルだけ戻したい場合:
git restore ファイル名
これだけでOK。checkout
よりも断然わかりやすいですよね。
「restoreで戻したけど、なんかファイルやフォルダが残ってる…」
そんな経験はありませんか?
実は、git restore
では**新しく作ったファイルやフォルダ(Untracked)**は削除されません。
その場合は、次のコマンドを使います。
git clean -fdn
これは「何が削除されるか」を表示するだけの安全なコマンドです。削除はされません。
git clean -fd
-f
は「force(強制)」
-d
は「ディレクトリも含める」
と覚えておきましょう。
「変更した内容も、新しく作ったファイルも、全部まとめてなかったことにしたい!」
そんなときは、この2つをセットで実行します。
git restore .
git clean -fd
これで、作業前のまっさらな状態に戻せます。
編集した内容をすべて元に戻したい(Gitで管理されているファイル)
→ git restore .
特定のファイルだけを元に戻したい
→ git restore ファイル名
新しく作ったファイルやフォルダ(まだGitで管理されていないもの)を削除したい
→ git clean -fd
削除する前に何が消えるのかを確認したい
→ git clean -fdn
編集も追加も全部まるごと一気に元に戻したい
→ git restore .
のあとに git clean -fd
「昔は
git checkout .
を使ってたけど、今はgit restore .
のほうがわかりやすくておすすめだよ。あと、試しに作ったファイルとかはgit clean -fd
で消せるから、セットで使うと便利だよ!」
今のGitに合った方法を伝えることで、より安全に、よりスムーズに開発が進むようになります。
ぜひ、後輩やチームにも「今の正しいやり方」を伝えてみてくださいね。