fileAcommit で削除したとしましょうabc123。次に、git resetの出力は、削除されたものをgit diff示していfileAます。fileA私の作業ディレクトリにはもうないので、再度追加することはできません。
のデフォルトはgit resetですgit reset --mixed。これは次のように説明されman git-resetています。
作業ツリーではなくインデックスをリセットし (つまり、変更されたファイルは保存されますが、コミットのマークは付けられません)、更新されていないものを報告します。
エレガントなソリューションとは何ですか。1 つの回避策は、ファイルを含む後のコミットをチェックアウトし、ファイルをコピーしてから、abc123再度チェックアウトして追加することです。
解決策:
以下の2つの解決策は正しいです。1 つは、ファイルが削除されたコミットをチェックアウトし、単純にgit checkout fileA. もう1つは、削除されたコミットより後の現在のコミットでファイルを回復する方法を示していますfileA。あなたが実行しますgit checkout abc123~ -- file A( --checkout コマンドが、ファイルをロールバックしようとしていることを認識し、ブランチを変更していないことを確認します)。