git 대용량 파일 올리기
git 대용량 파일 올리기
원인
- 하나의 파일 용량이 100mb 이상일 때는 push가 되지 않는다
- 커밋 이력 중에 100mb 이상인 파일이 올라간 이력이 있으면 올라가지 않는다
자율 프로젝트의 경우 frontend/android/java_pid22576.hprof
이 파일 업로드 로그가 문제인 것으로 보임
용량 400mb 넘었던 그 파일 - 이게 sdk 버전이 안 맞아서 생기는 메모리 누수 경고? 그런 문제였던 거 같은데 해당 부분은 더 찾아봐야할 듯
process
error 확인
1
$ git push origin master
1
2
3
4
5
6
7
8
9
10
11
12
13
14Enumerating objects: 3218, done.
Counting objects: 100% (3218/3218), done.
Delta compression using up to 12 threads
Compressing objects: 100% (1199/1199), done.
Writing objects: 100% (3218/3218), 159.51 MiB | 1.90 MiB/s, done.
Total 3218 (delta 1705), reused 3215 (delta 1703), pack-reused 0
remote: Resolving deltas: 100% (1705/1705), done.
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 09bb81948ab6fa06b710474f8fca70c1224fb799c7f56f1878e10774c88307d6
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File frontend/android/java_pid22576.hprof is 434.09 MB; this exceeds GitHub's file size limit of 100.00 MB
To https://github.com/qsoo/test.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/qsoo/test.git'bfg-repo 들어가서 우측의 jar 파일 다운로드
해당 다운로드한 파일을 git push할 지점으로 이동시킨다
1
2
3
4
5
6
7example)
.git/
backend/
client/
frontend/
bfg-1.14.0.jar
README.md
대용량 파일 삭제 및 로그 기록 삭제
1
2
3
4
5
6$ java -jar bfg.jar --strip-blobs-bigger-than 100M
# bfg.jar 자리에 해당 다운로드 받은 버전에 맞는 파일명 써넣기
# example
$ java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 100M삭제된 로그 및 파일들의 이력을 바탕으로 가지치기 실시
1
2# 3번 명령어가 끝나면 친절하게 run 뒤에 명령어 안내해줍니다
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive대용량 파일 없는지 확인
1
2# 100mb 이상 파일 확인
$ find . -type f -size +100M정상적으로 작동했으면 push commit 새로 해서 실시(mirror도 동일)