fileA
commit で削除したとしましょう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 コマンドが、ファイルをロールバックしようとしていることを認識し、ブランチを変更していないことを確認します)。