본문 바로가기

CLI/Git

[Git lfs track] Github 대용량(100MB 이상) 파일 업로드

이미지 데이터셋 전처리를 위해 AI Hub에서 다운받은 아주 아주 대용량 파일인(무려 240MB,,) .json 파일을 working directory에 넣어놔서 이 파일도 같이 깃허브에 올리려고 했는데,, 깃허브에 업로드 가능한 파일 용량도 제한이 있었다.

(참고로, lfs도 용량 제한이 있다! Github와 Bitbucket은 1GB, GitLab은 10GB 용량을 제공한다고 한다. 그 이상은 유료ㅋ)

 

fatal: the remote end hung up unexpectedly

 

사실..깃허브에 업로드 파일 용량 제한이 있다는 걸 잊어버리고 있다가 실수로 이미지 데이터까지 디렉토리 내에 있는 것들 전체를 push 하려다가 만난 오류이다!-!

 

이런 오류가 떠서 구글링 했더니 Git-lfs라는 것이 있었고, 설치 후 사용 가능했다.

 

1. git-lfs 설치

설치는 무조건 brew!!!! 로 하는 게 확실히 편하다,,(속 시원,,)

 

 brew install git-lfs

 

2. 로컬 디렉토리로 이동

깃허브 레포에 커밋할 디렉토리로 이동하도록 함.

 

cd [local 디렉토리명]

 

3. 대용량 추적 파일 설정

현재 작업 디렉토리가 아닌 하위 디렉토리의 파일을 추적하고자 하면 " 경로/파일명.확장자 " 의 형태로 입력해주면 된다.

그리고, 디렉토리 내 모든 파일을 추적하고자 한다면 * 로 표시하면 된다!

 

git lfs track /Korean_font_image/Text_in_the_wild/textinthewild_data_info.json

 

위의 명령어를 입력하게 되면 해당 파일을 추적한다는 내용이 출력된다.

 

Tracking "/Korean_font_image/Text_in_the_wild/textinthewild_data_info.json"

 

4. 설정 파일 추가

gir lfs에 대해 설정한 내용이 .gitattributes에 저장되어 있어 이 파일을 추가하기 위함.

 

git add .gitattributes

 

5. 원격 저장소에 업로드하기

 

git add Korean_font_image/Text_in_the_wild/textinthewild_data_info.json

 

git add를 하고 저장소에 업로드가 되었는지 확인하기 위해  git status 를 입력했고, 

 

현재 브랜치 main
브랜치가 'origin/main'에 맞게 업데이트된 상태입니다.

커밋할 변경 사항:
  (use "git restore --staged <file>..." to unstage)

	새 파일:       .gitattributes
	새 파일:       Korean_font_image/Text_in_the_wild/textinthewild_data_info.json

 

이렇게 출력된 것으로 보아, 업로드 하고자 한 .json 파일과 설정 파일도 같이 올라간 것을 볼 수 있다. 

 

git commit -m "Initial commit”
git push origin main

 

6.  git lfs 파일 추적

모든 commit에서 git lfs로 관리되는 파일을 확인할 수 있다.

 

 git lfs ls-files --all