[GIt]ワーキングディレクトリの変更をもとに戻す

ワーキングディレクトリでの作業をもとに戻したい場合、git checkoutコマンドで戻すことができます。

特定のファイルだけもとに戻したい場合はgit checkoutにファイル名を指定します。

構文

git checkout[ファイル名]

特定のファイルではなく、全てのファイルを元に戻したい場合はgit checkoutにドットを指定します。

git checkout .
index.phpというファイルを変更し、git statusでブランチを確認すると次のように出力されます。
「modified: index.php」というメッセージで変更されたことが確認できます。

git status

出力結果

On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)

        modified:   index.php

no changes added to commit (use "git add" and/or "git commit -a")

次のコマンドを打ってみましょう。ファイル名を指定しても良いですが、ワーキングディレクトリで変更したファイルの変更が全て取り消されるます

git checkout .

特に何もメッセージは表示されませんが、git statusで確認すると、「nothing to commit, …」というメッセージが表示され、更新が取り消されたのが確認できます。

git status

出力結果

On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working tree clean

新規追加したファイルも消す

git checkoutによる変更の取り消しはファイルの変更をもとに戻すだけなので、新規追加されたファイルなどは残ったままになります。
それらのファイルも消したい場合、git checkoutとは別にgit cleanコマンドも使います。

git clean -df .

これで追加されたファイルが一通り削除されます。