Git 저장소 크기 감소
저는 리포 크기를 줄이기 위한 좋은 튜토리얼을 찾았지만 찾을 수 없었습니다.어떻게 하면 저장소 크기를 줄일 수 있을까요? 약 10MB이지만, Heroku는 50MB만 허용하고 앱 개발을 거의 완료하지 못했습니다.
저는 이미 gitignore에 일반 용의자(로그, 벤더, 문서 등)를 추가했습니다.최근에 .gitignore를 추가했을 뿐입니다.
좋은 의견이라도 있나?
11년 후인 2021년 2월 업데이트: 새 명령(man 페이지)이 대체되어야 합니다.git gc예약할 수 있습니다.
Original: 제거 프로세스를 강제로 수행하는 방법 중 하나입니다(확실히 다음 사항이 있습니다).git gc --aggressive --prune=now) repo를 정리할 다른 명령도 있습니다.하지만 가끔은 잊지 마세요.git gc그것만으로도 레포의 크기를 늘릴 수 있습니다!
다음 이후에도 사용할 수 있습니다.filter-branch기록에서 제거할 일부 디렉토리를 표시합니다(공간 확보). 여기를 참조하십시오.하지만 그것은 아무도 당신의 공적 평판에서 손을 떼지 않는다는 것을 의미합니다.filter-branch 에서 백업 참조를 보관할 수 있으므로 디렉터리도 정리할 수 있습니다.
마지막으로, 이 의견과 이 질문에 언급된 바와 같이, 리필로그를 청소하면 다음과 같은 도움이 될 수 있습니다.
git reflog expire --all --expire=now
git gc --prune=now --aggressive
훨씬 더 완전하고 위험할 수 있는 솔루션은 Git 저장소에서 사용하지 않는 개체를 제거하는 것입니다.
이제 (Git 2.24+, 2019년 4분기)는 구식 또는 BFG를 대체합니다. 먼저 설치될 파이썬 기반 도구입니다.
Joe가 제안합니다.
# Find the largest files in .git:
git rev-list --objects --all | grep -f <(git verify-pack -v .git/objects/pack/*.idx| sort -k 3 -n | cut -f 1 -d " " | tail -10)
# Strat filtering these large files:
git filter-repo --path-glob '../../src/../..' --invert-paths --force
#or
git filter-repo --path-glob '*.zip' --invert-paths --force
#or
git filter-repo --path-glob '*.a' --invert-paths --force
git remote add origin git@github.com:.../...git
git push --all --force
git push --tags --force
당신의 답변에 감사합니다.제가 한 일은 다음과 같습니다.
git gc
git gc --aggressive
git prune
그것이 효과가 있었던 것 같습니다.약 10.5로 시작했습니다.MB 그리고 지금은 980KB가 조금 넘습니다.
저의 경우 큰(100Mb 이상) 파일을 여러 개 푸시한 다음 제거 작업을 진행했습니다.하지만 그것들은 여전히 제 레포의 역사에 남아 있어서, 저는 그것들도 그 레포에서 제거해야만 했습니다.
비결은 무엇이었을까요?
bfg -b 100M # To remove all blobs from history, whose size is superior to 100Mb
git reflog expire --expire=now --all
git gc --prune=now --aggressive
그런 다음 가지에 힘을 가해야 합니다.
git push origin <your_branch_name> --force
참고: bfg는 brew를 사용하여 Linux 및 macOS에 설치할 수 있는 도구입니다.
brew install bfg
이는 모든 사용자에게 영향을 미치지는 않지만 저장소 크기가 큰 이유 중 하나는 Git 하위 모듈일 수 있습니다.
하나 이상의 하위 모듈을 추가했지만 사용을 중지하고 일부 파일이 다음 위치에 남아 있을 수 있습니다..git/modules디렉토리입니다.중복 하위 모듈 파일을 배포하려면 이 질문을 참조하십시오.
의 입니다..git/modules예를 들어, 다음과 같은 일을 합니다.git gc --aggressive --prune.
이는 저장소 크기에 좋은 영향을 미치지만 Git 하위 모듈(예: 대규모 라이브러리)을 사용하는 한 저장소 크기가 크게 변경되지 않아야 합니다.
언급URL : https://stackoverflow.com/questions/2116778/reduce-git-repository-size
'programing' 카테고리의 다른 글
| Promise 또는 Observable을 반환해야 하는 검증자 (0) | 2023.05.04 |
|---|---|
| ng build' 후 angular-cli에서 dist-folder 경로를 변경하는 방법 (0) | 2023.05.04 |
| SQL Server에서 VARCHAR 열의 최대 길이 검색 (0) | 2023.05.04 |
| 다음 대신 사용할 항목::ng-deep (0) | 2023.05.04 |
| 반복 행 루프에서 판다 데이터 프레임의 값 업데이트 (0) | 2023.05.04 |