2019アップデート:
2019年7月以降、これを正確に実行する新しいコマンドがありますgit restore
。
ではgit status
、今ではGitは以前のようにではなくこのコマンドをgit checkout
使用することを推奨しています。
このコマンドを使用して、作業ツリーを特定のコミットに復元したり、インデックスの内容を復元したりすることもできますが、デフォルトでは、作業ツリーはインデックスの状態に復元されます(ここで尋ねられた内容)。
したがって、pathspecに一致するファイルを復元するには(ステージングされていない変更を取り除く)、次のようにします。
git restore <pathspec>
たとえば、ステージングされていないすべての変更を現在のディレクトリに復元するには、次のコマンドを実行します。
git restore .
これをプロジェクトのルートから実行すると、ステージングされていないすべての変更がリポジトリ全体に復元されます。
git checkout -- .
(Mariusz Nowakによって指摘されたように)これはGitによって追跡されたファイルへの変更のみを破棄し、新しい追跡されていないファイルは破棄しないことに注意してください。新しい追跡されていないファイルを含む、ステージングされていない変更を破棄したい場合は、追加で実行できます。
git clean -df
この後のコマンドには十分注意してください。ただし、削除するつもりがなかったファイルは破棄される可能性があります。
注意git restore
:これは新しいコマンドなので、そのmanページは警告を出します:
このコマンドは試験的なものです。動作が変わる場合があります。
したがって、将来的に動作が変更されると、この回答が古くなる可能性があります。したがって、man git-restore
使用する前にクイックを実行するのが賢明かもしれません。
git-clean
のみ作業ツリーから追跡されていないファイルを削除しgit-scm.com/docs/git-clean