[Git] github's file size limit of 100.00 mb..

Yoons·2024년 3월 2일
0
post-thumbnail

문제 상황

깃헙에 push 하는 과정에서 올리려는 파일이 너무 커 올라가지 않음..
확인해보니 YOLO cv모델이나, myvenv(가상환경)에 너무 큰 파일들 떄문에 올라가지 않음


해결방법

이 방법은 크게 두 가지 방법으로 해결할 수 있을 것 같다.

  1. LFS 설치해서 더 큰 파일도 올릴 수 있도록 허용
  2. .gitignoreremove cache를 이용해 대용량 파일은 올라가지 않도록 설정

우선 커밋을 돌리자

1. git log 확인

git log 명령을 실행하여 커밋 내역 확인

2. 원하는 방법으로, 원하는만큼 커밋 돌리기

[방법 1] commit을 취소하고 해당 파일들은 staged 상태로 워킹 디렉터리에 보존
$ git reset --soft HEAD^

[방법 2] commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에 보존
$ git reset --mixed HEAD^ // 기본 옵션
$ git reset HEAD^ // 위와 동일
$ git reset HEAD~2 // 마지막 2개의 commit을 취소

[방법 3] commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에서 삭제
$ git reset --hard HEAD^
https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html

LFS 활용

1. LFS란??

Git Large File Storage, 대용량 파일 버전 관리를 위한 git 확장판으로 별도의 lfs 서버에 파일을 올려놓고 git에서는 해당 파일을 찾을 수 있는 포인터를 가지도록 한다. 자세한 내용은 해당 홈페이지에서

2. LFS 설치

  • Ubuntu
$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
$ sudo apt-get install git-lfs
  • Mac
// mac 환경에서 git-lfs 설치하기
$ brew install git-lfs

3. LFS 사용

Git LFS를 사용하려는 레퍼지토리에서 다음의 커맨드를 실행해 lfs를 초기화한다.

$ git lfs install

LFS로 관리할 파일을 추가한다.

# git lfs track "파일 경로"
$ git lfs track "file.py"

LFS로 관리하는 파일 목록을 ls-files를 통해 확인할 수 있다.

$ git lfs ls-files

git lfs track을 하고 나면 .gitattributes 파일이 추가되는데, git lfs에 대한 설정이 .gitattributes 파일로 관리된다.

함께 add ., commit, push 해주면 100MB가 넘어가는 대용량 파일도 git에 저장할 수 있다.

$ git add .gitattributes
$ git commit -m "commit message"
$ git push origin main

이로써 LFS를 이용한 문제 해결 완료!!


.gitignore 활용

1. .gitignore란??

Git서버에 add, commit, push 하는 과정에서 원하지 않는 파일은 ignore할 수 있도록 파일 또는 폴더 이름을 지정하여 올라가지 않게 한다.

2. .gitignore 생성

.gitignore 파일을 생성하는데 별다른 설치과정은 필요하지 않다. 그냥 .gitignore 라는 이름의 파일을 생성하자.

3. .gitignore 사용

가장 간편한 방법은 toptal 이라는 사이트에서 키워드 (Django, python) 등 검색어를 입력하면, 기본 세팅을 자동으로 제공한다.

별도로 본인이 올리고 싶지 않은 파일이 있다면 '파일명' 또는 '폴더명/'를 입력하여 추가할 수 있다.

4. 문제 해결

.gitignore를 추가한 이후에도 add, commit, push를 시도해보면 다시 오류가 발생할 수 있다. 그 이유는 이전에 해당 파일 및 폴더가 이미 git 서버에 올라가 있기 때문에 cache를 지워준 후 올려야 한다.

git rm -r --cached .

위 명령을 입력해주면 기존에 올라가 있던 정보들에 대한 cache가 삭제된다. 필요한 파일들은 지금 다시 add, commit, push 할 것이기 떄문에 안심하고 진행해도 괜찮다.

이제 add, commit. push를 해보고 잘 올라가는지 확인하자!!


References

profile
모든 글은 저의 눈물을 머금으며 작성한 글이니..재밌게 봐주세요 :) 깃헙 맞팔@

0개의 댓글