2010-01-22 1 views
187

레포 크기 줄이기에 대한 좋은 지침서를 찾으려고했지만 아무 것도 찾지 못했습니다. 내 레보 크기를 줄이려면 어떻게해야합니까? 약 10MB이지만, Heroku는 50MB 만 허용하며 근처에 내 앱을 개발 한 곳이 없습니다.git 저장소 크기 줄이기

.gitignore에 일반적인 용의자 (로그, 공급 업체, 의사 등)를 이미 추가했습니다. 최근에 .gitignore 만 추가했습니다.

제안 사항?

+1

방금했고 2.2 메가 바이트로 가져 왔습니다 ... 덕분에 많이! 그게 Heroku의 repo 크기를 줄이지는 않았지만 ...hmm –

+9

--force를 사용하여 밀어 넣으십시오. 변경 사항이 없더라도 내용을 덮어 씁니다. (새로운 커밋이없는 경우) –

+1

@MarcinGil - VonC에서는 원격 서버를 정리하기 위해 서버에 액세스해야한다고 말합니다 (올바르게 구문 분석하고있는 경우). – jww

답변

221

git gc --aggressive은 제거 프로세스가 강제로 수행되도록하는 한 가지 방법입니다 (반드시 : git gc --aggressive --prune=now). 레포를 청소하려면 other commands가 있습니다. 그래도 가끔 git gc 혼자 수 있습니다 잊지 마세요 increase the size of the repo!

filter-branch 뒤에 사용하여 일부 디렉토리를 히스토리에서 제거하도록 표시 할 수 있습니다 (추가 공간 확보). here을 참조하십시오. 하지만 그건 아무도 공공 repo에서 당기지 못한다는 것을 의미합니다. filter-branch can keep backup refs in .git/refs/original, 디렉토리도 정리할 수 있습니다.

마지막으로, 상술 한 바와 같이 in this commentthis question; reflog가 도움이 될 수 있습니다 청소 :

git reflog expire --all --expire=now 
git gc --prune=now --aggressive 

짝수 더 완전한, 그리고 아마도 위험, 솔루션은 답변에 대한 to remove unused objects from a git repository

+0

다른 시나리오에서는 http://stackoverflow.com/questions/1029969/why-is-my-git-repository-so-big – VonC

+1

참고 : 원격 분기점을 잊지 마세요. http : // stackoverflow. com/questions/11255802/delete-remove-binary-file-git-repository-is-still-large – VonC

+1

참고 사항 : 원격 태그를 잊지 마십시오. – saiyancoder

59

감사합니다. 여기 내가 한 일이 있습니다 :

git gc 
git gc --aggressive 
git prune 

트릭을 한 것처럼 보입니다. 나는 약 10.5MB에서 시작했고 현재는 980KB가 조금 넘습니다.

+6

'prune'은 항상'gc' (2 주 전 기본값)로 실행됩니다. – Cas

+80

U는 'git gc --aggressive --prune = now'를 사용하여 가지 치기까지 모두 3을 실행할 수 있습니다. – rahul286