github에 대용량 파일 업로드하기

RyeonD·2021년 3월 27일
1

github 사용기

목록 보기
1/2

최근 진행한 semiProject를 github에 push하고, 팀원들과 공유를 해볼까했다. 그 과정에서 파일 크기가 100MB를 초과하는 것이 있어 push 할 때마다 에러가 발생했다. (에러가 났던 부분에 대해 캡쳐를 해두지 않아 사진은 다른 PC를 이용할때 따로 업로드하겠다.)

일단 github에 파일을 올릴 때 50MB 이상의 파일은 warning, 100MB 이상의 파일은 error가 뜬다. 해결 방법은 있다! 다만, 첫시도에 되지 않을 수도 있으니 따라할꺼면 천천히 따라오길 바란다.

1. git-lfs 이용하기

대용량 바이너리 파일을 관리하기 위해서 github에서 만든 것으로 lfs는 Large File Storage를 의미한다. github 홈페이지에서는 다음과 같이 git-lfs에 대해 설명하고 있다.
간추리자면, 대용량 파일을 Git 내부의 텍스트 포인터로 대체하고, 파일들을 원격 서버에 저장한다고 설명을 하고 있다. 그렇다면 어떻게 사용하면 될까?

git-lfs 사용법

1) 아래 명령어를 입력해 먼저 lfs를 설치한다.

git lfs install

2) git-lfs의 설치가 완료되면, 다음 명령어를 이용해 용량이 큰 파일들을 관리대상으로 지정해준다.

git lfs track "파일명"

현재 디렉토리 안 모든 파일들을 지정할때는 아래와 같이 입력하면 된다.

git lfs track *

다만, 직접 해보니 현재 디렉토리 안에 폴더가 있는 경우 해당 폴더 안의 파일까진 관리대상으로 설정되지 않으니 파일명 자리에 파일이 있는 경로까지 같이 넣어줘야 한다.

예를 들어 '현재 위치/data/year_music_info/ko' 폴더 안 ko.bin 파일을 관리대상으로 지정하고 싶다면 명령어는 다음과 같다.

git lfs track data/year_music_info/ko/ko.bin

3) 대용량 파일들을 관리대상으로 설정이 끝났다면, commit을 하고, github에 push하면 된다.

문제는 차례대로 진행했는데도 에러가 뜰 수도 있다는 것이다.(나도 그랬다.) 아마 이전에 commit 했던 기록이 남아있어서 그럴것이다.

해결방법은 BFG Repo-Cleaner를 사용하는거다.

2. BFG Repo-Cleaner 이용하기

BFG Repo-Cleaner은 크거나 문제가 많은 blob을 제거해주고, 속도를 더 빠르게 도와준다고 한다.

1) 파일 다운로드

먼저, https://rtyley.github.io/bfg-repo-cleaner/ 로 가서 .jar 파일을 다운로드 받아 명령어를 실행할 위치에 넣어준다. 파일 다운로드 버튼은 해당 홈페이지 아래쪽에 있다.

2) 다운로드 받은 파일 실행하기

java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 100M

코드 복사 시 bfg 파일 버전을 주의하기 바란다. 자신이 다운 받은 파일 버전을 확인하고 입력하자.

3) 실행이 완료되면 다시 commit과 push를 진행해준다.


여기까지가 내가 문제를 해결한 방법들이다. 추가로 하나 더 적자면 github에 파일을 올리는 명령문 순서는 다음과 같다.(추가 작업이 필요한 경우 중간에 다른 명령어가 포함될 수 있다.)

git pull 	 // github repository에 있는 파일 로드하기
git add * 	// 변경 파일 추가
git commit -m "커밋내용"	// commit 하기
git push -u origin main		// main branch에 push 하기

다음 블로그 글은 순서가 바뀐 듯 하지만 github 실행 방법에 대해 적어봐야겠다.

profile
I'm job hunting. I want to be a sw developer.

2개의 댓글

comment-user-thumbnail
2023년 2월 15일

How do I upload files larger than 25mb to GitHub?
Files that you add to a repository via a browser are limited to 25 MB per file. You can add larger files, up to 100 MB each, via the command line. For more information, see "Adding a file to a repository using the command line." To add files larger than 100 MB, you must use Git Large File Storage. pgsharp website

답글 달기
comment-user-thumbnail
2023년 2월 15일

When file size exceeds 100 MB. If the file size exceeds 100 MB, it is rejected from pushing to the repository and an error message will appear. You can remove the file from your local commit, or alternatively, please consider using Git LFS as there are no file size limits for Git LFS. thaumcraft website

답글 달기