auto

自分で操作した覚えがないのに、ファイルが更新されたり追加されたりした経験はないでしょうか。私はあります。

ビルドしただけなのに、ビルド前後でスクリプトが動くようになっていて、ファイルが書き換えられたり、コマンドを実行した時に想定外のファイルが増えたり減ったり…ということを時々経験します。そんな時 Git で管理していれば元の状態に戻すことができるのですが、戻すのは意外と面倒です。まあ Git で管理していなくて戻せないよりはマシなのですが…

今までは GUI 上でちまちま元に戻していたのですが、コマンドラインでやったほうが早いだろうと思い、調べてみました。

未追跡ファイルを削除する

まずは管理していないファイルが追加された時になかったことにするのは、git clean を使います。これを実行してファイルを削除すると元に戻せなくなる (はず) なので、削除する時はいったん削除対象のファイルを確認してから削除します。

削除対象を確認

$ git clean -n

ファイルのみ削除する場合は、-f のみパラメータを付けます。

$ git clean -f

ファイルとディレクトリを削除する場合は、-f だけでなく -d も付けます。

$ git clean -fd

コミットを戻す

次に更新されたファイルを戻す方法です。最新のコミットに戻せばいいので、git reset --hard を使います。

$ git reset --hard HEAD

これでワーキングツリーとインデックスが綺麗になります。