最近の変更をあきらめて、プッシュされた最新のコミット (2de1222) に戻りたいです。
その時点で作業中 (ステージングされていない) のは 1 つのファイルだけでした。2de1222 以降、1 つのローカル コミットが行われました。別のウィンドウで gitk を作成して、各コミットの SHA と、含まれるファイルがどのように見えるかを確認できるようにしました。
最初に試してみgit reset 2de1222 --hard
ました。「致命的です。この操作は作業ツリーで実行する必要があります」というメッセージが表示されました。そこで、「git status」を実行すると、変更されたファイルが 1 つ表示されましたが、「コミットのためにステージングされていない変更」の下に、すべてアプリの一部であるファイルの長いリストがありました。ここの「gitk」は、移動したいコミットにいることを示しています。作業ディレクトリ内のターゲット ファイルは、コミット 2de1222 の場合と同じように見えます。
同様のメッセージに関する回答を検索し、次の提案を試みました。
git checkout master
git reset --soft HEAD@{1}
git reset HEAD [my_filename]
git pull origin master
git reset --hard 2de1222 (different argument order)
いずれの場合も、「git status」から同じ結果が得られ、「致命的: この操作は作業ツリーで実行する必要があります」という同じ警告が表示されました。なぜgitが一連の削除と思われるものをリストするのか、なぜ「作業ツリー」にいないのか、よくわかりません。
2de1222 コミットの直後 (「git status」にファイルが表示されない) と同じ状態に戻り、必要な 1 つのファイルを変更、テスト、およびコミットする準備をするにはどうすればよいですか? (うまくいけば、「削除された」ファイルごとに個別に対処する必要はありません)?