1. ホーム
  2. git

[解決済み] git undo すべての未コミットまたは未保存の変更を取り消す

2022-03-16 20:10:55

質問

最後のコミット以降の変更をすべて元に戻そうとしています。私は git reset --hardgit reset --hard HEAD 閲覧後 この記事 . 私はheadが18c3773になったと応答します...しかし、私のローカルソースを見ると、すべてのファイルはまだそこにあります。何が足りないのでしょうか?

解決方法は?

  • でステージングしたすべてのファイルのステージングを解除します。 git add :

    git reset
    
    
  • これは、ローカルのコミットされていない変更をすべて取り消します(レポのルートで実行する必要があります)。

    git checkout .
    
    

    また、特定のファイルやディレクトリに対してのみ、コミットされていない変更を戻すことができます。

    git checkout [some_dir|file.txt]
    
    

    コミットされていない変更をすべて取り消す、もうひとつの方法です (入力に時間がかかりますが、どのサブディレクトリからでも実行できます)。

    git reset --hard HEAD
    
    
  • これは、ローカルの未追跡ファイルをすべて削除するので だけ git tracked ファイルが残ります。

    git clean -fdx
    
    

    警告 -x で指定されたファイルを含む、無視されたすべてのファイルを削除します。 .gitignore ! を使用することができます。 -n 削除するファイルのプレビューに使用します。


要約すると、以下のコマンドを実行することは、基本的にfreshと同等です。 git clone を元のソースからダウンロードします(ただし、何も再ダウンロードしないので、より高速です)。

git reset
git checkout .
git clean -fdx

この典型的な使い方は、ビルドスクリプトで、ツリーが完全にクリーンであることを確認する必要がある場合、つまり、変更やローカルで作成したオブジェクトファイルやビルド成果物がなく、非常に高速に動作し、毎回リポジトリ全体を再クローンしないようにしたい場合に使用します。