2012-09-15 12 views
5

私はgitを初めて使っていますが、私はちょうど間違いを犯しました。 "rm *"コマンドで重要なファイルをいくつか削除しました。しかし、私は "git add"を使ってこれらのファイルを追加しましたが、コミットはしませんでした。削除はまだ追加されていません。だから、これらの削除されたファイルを回復する方法があります。Gitで追加されましたがコミットされていない削除済みファイルを回復できますか?

ご意見やご感想をお寄せください。ありがとう。

答えて

7

ファイルは既にステージング領域(インデックス)に入っているため、引数なしでgit commitを使用してファイルをコミットするだけです。これにより、作業ツリーの現在の状態に関係なく、索引の内容がコミットされます。

git reset --hard(保存したいツリーに他の変更がない場合)またはgit checkout FILE1 FILE2...を使用して、失われたファイルを作業ツリーに復元することができます。

+0

ああ、ポスターが「まだ削除されていません」と気付かなかった。 –

+0

ありがとう、それは働いた。 – user1672893

4

git fsck --lost-foundを使用して、参照されなくなったオブジェクトをすべて見つけることができます。 'blob'オブジェクトを見て、削除したファイルと一致するものがあるかどうかを確認します。うまくいけば、多くの参照されていないオブジェクトが周りに横たわっていないことを望みます。


user4815162342が指摘したように、ポスターは実際に彼らはgit checkoutで取得、または単に彼らが離れて行っていないことを確認するために、今コミットすることができることを意味、削除がまだ追加されていなかったと述べました。

他の誰かがgit fsck --lost-foundの情報を求めている場合には、私の回答を残すつもりですが、user4815162342の回答を受け入れる必要があります。

+0

こんにちは、ありがとうございました。私は、コマンドを実行し、このようにブロブをダングリングのリストを見て、その後、どのように私は戻って削除したファイルを得るのですか?ダングリングブロブダングリング029530a4ebc7dec791a58cb022e18d0d87c8fe04 ブロブ0c08f1e149bfa9e84e9e30867c931423267b91c7をダングリング0c871fff49c4a05ff4a49b6a910f3bc4b688e338 が – user1672893

+1

'Gitのfsckが--lost-found'すべてのダングリングオブジェクトを書き込み、ブロブ'.git/lost-found/commit /'や '.git/lost-found/other /'フォルダにコピーします。 'other'フォルダを見て、あなたが削除したものを含むファイルを見つけようとします。名前はSHA1ハッシュですが、内容は実際のファイルになります。 –

+0

また、 'git cat-file -p SHA1'を使って個々のオブジェクトを印刷することもできます。 –

関連する問題