2011-07-01 14 views
7

私は自分の仕事をすべて消してしまいました。
残っているのはgitオブジェクトだけです。何よりも私は失われた画像ファイルのいくつかを回復したいと思っています。オブジェクトファイルのサイズから、どのオブジェクトかを知ることができます。使用可能なファイルに戻す方法はありますか?Gitオブジェクトからファイルを回復する

+1

gitオブジェクトのみ? refs/branches/tagsはありませんか?最初のもの:バックアップ – knittl

答えて

5

最初のもの:バックアップを作成する!そのバックアップのコピーを作成します。

gitオブジェクトがまだ正しいディレクトリ(.git/objects/xx/xxx…)にある場合は、git fsck --fullを使用してgitを検出できます。これはおそらくリポジトリ内のすべてのオブジェクトをリストします。 committagと表示されているものを探してください。それらは回復したいものです。

おそらく、見つかった各コミットオブジェクトの分岐を作成するスクリプトを使用します(たとえば、数字がrescue-1rescue-2など)。その後、gitk --allを使用して、すべてのブランチを視覚化し、最新のものを選択します。そこに新しい支店を作成しますrescued-master

新しいマスターブランチをチェックアウトし、git branch --no-mergeを実行してください。マスターには含まれていない分岐コミットのリストを取得する必要があります。あなたはおそらくそれらに新しいブランチ名を与えたいでしょう。

完了後、rescue-番のすべての番号を削除してください。

希望を助け、出発点を与えます。

関連する問題