前回のコミット以降のすべての変更を元に戻そうとしています。試してみたところgit reset --hard
、git reset --hard HEAD
この郵便受けヘッドは現在 18c3773 にあります... という応答が返されますが、ローカル ソースを確認すると、すべてのファイルがまだそこにあります。何が足りないのでしょうか?
ベストアンサー1
これにより、ステージングした可能性のあるすべてのファイルがステージング解除されます
git add
。git reset
これにより、コミットされていないローカルの変更がすべて元に戻ります (リポジトリのルートで実行する必要があります)。
git checkout .
特定のファイルまたはディレクトリに対してのみコミットされていない変更を元に戻すこともできます。
git checkout [some_dir|file.txt]
コミットされていないすべての変更を元に戻す別の方法 (入力には時間がかかりますが、どのサブディレクトリからでも機能します):
git reset --hard HEAD
これにより、追跡されていないローカル ファイルがすべて削除され、 git で追跡されたファイルのみが残ります。
git clean -fdx
警告: は、
-x
!で指定されたファイルも含め、無視されるファイルもすべて削除します。削除するファイルのプレビューには を.gitignore
使用することをお勧めします。-n
まとめると、以下のコマンドを実行することは、基本的にgit clone
元のソースから新しくダウンロードするのと同じです (ただし、何も再ダウンロードしないので、はるかに高速です)。
git reset
git checkout .
git clean -fdx
これは、通常、ビルド スクリプトで使用されます。ビルド スクリプトでは、ツリーが完全にクリーンである (変更やローカルで作成されたオブジェクト ファイルやビルド アーティファクトが一切ない) ことを確認する必要があり、非常に高速に動作させて、毎回リポジトリ全体を再クローンしないようにする必要があります。