2013-06-06 3 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/objects 디렉토리에있는 모든 객체를 생성합니다.

+9

해키하지만 유효합니다. 이것이 작동하는 이유는'git unpack-objects'가 이미 repo에있는 객체를 생성하지 않고 pack 파일이 repo에있는 것처럼 보이기 때문에 아무것도하지 않기 때문입니다. 이것은'get help unpack-objects'에서 매우 명확하게 설명됩니다. –

+4

감사합니다, 한가지 - 팩 파일은 리포 안에있을 필요가 없습니다 –

+0

또한'.git/objects/info/packs' 파일에'.git/개체/팩'. 또한'.git/packed-refs' 파일에는 팩 파일을 통해 사용할 수있는 refs (head, tags) 목록이 들어 있습니다. 나는 팩 파일을 제거한 후 그들과 무엇을해야할지 모르겠다. 제거해야 할 수도 있고,'git fsck'가 그들을 돌볼 수도있다. 나는 몰라. 단지를 대비해서 ... – kostix