2013-06-06 7 views
26

どのように解凍できますかすべてパックファイルのオブジェクトはありますか?gitリポジトリのすべてのオブジェクトをアンパックする方法は?

私はリモートリポジトリをクローンしただけなので、ローカルリポジトリには現在、ゆるいオブジェクトはなく、.packと.idxファイルのみが含まれています。

git unpack-objects < .git/objects/pack/pack-.packを実行しようとしましたが、何も起こりません。

私は何か間違っていますか?それを行うための他のコマンドはありますか?

答えて

32

コマンドを使用する前に、パックオブジェクトを.git/objects/packディレクトリの外に移動する必要があります。ただし、パックファイルはリポジトリ内にある必要があります。

たとえば、プロジェクトのルートにディレクトリ名SAMPLEを作成します。次に、パックファイルをSAMPLEディレクトリに移動します。その後、パックファイルのないリポジトリ内で、git unpack-objects < SAMPLE/*.packというコマンドを使用します。 Gitはあなたのリポジトリの.git/objectsディレクトリ内のすべてのオブジェクトを生成します。

+9

ハッキーですが、有効です。これが動作する理由は、 'git unpack-objects'はリポジトリに既にオブジェクトを作成しておらず、パックファイルがリポジトリにあるので何もしません。これは 'get help unpack-objects'で非常に明確に説明されています。 –

+4

ありがとう、ちょうど1つのこと - パックファイルはレポの内側にある必要はありません –

+0

'.git/objects/info/packs'というファイルがあります。このファイルに' .git /オブジェクト/パック '。また、 '.git/packed-refs'ファイルには、パックファイルで利用できるrefs(head、tags)のリストが含まれています。私はパックファイルを削除した後に何をするべきか分かりません。削除する必要があるかもしれませんし、 'git fsck'がそれらを世話するかもしれません - 私はうんざりです。ただの場合のために心に留めておいてください... – kostix

関連する問題