깃헙에 push 하는 과정에서 올리려는 파일이 너무 커 올라가지 않음..
확인해보니 YOLO cv모델이나, myvenv(가상환경)에 너무 큰 파일들 떄문에 올라가지 않음
이 방법은 크게 두 가지 방법으로 해결할 수 있을 것 같다.
LFS
설치해서 더 큰 파일도 올릴 수 있도록 허용.gitignore
및remove cache
를 이용해 대용량 파일은 올라가지 않도록 설정
git log
명령을 실행하여 커밋 내역 확인
[방법 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
Git Large File Storage, 대용량 파일 버전 관리를 위한 git 확장판으로 별도의 lfs 서버에 파일을 올려놓고 git에서는 해당 파일을 찾을 수 있는 포인터를 가지도록 한다. 자세한 내용은 해당 홈페이지에서
$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
$ sudo apt-get install git-lfs
// mac 환경에서 git-lfs 설치하기
$ brew install git-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
Git서버에 add, commit, push 하는 과정에서 원하지 않는 파일은 ignore할 수 있도록 파일 또는 폴더 이름을 지정하여 올라가지 않게 한다.
.gitignore
파일을 생성하는데 별다른 설치과정은 필요하지 않다. 그냥 .gitignore
라는 이름의 파일을 생성하자.
가장 간편한 방법은 toptal 이라는 사이트에서 키워드 (Django, python) 등 검색어를 입력하면, 기본 세팅을 자동으로 제공한다.
별도로 본인이 올리고 싶지 않은 파일이 있다면 '파일명' 또는 '폴더명/'를 입력하여 추가할 수 있다.
.gitignore
를 추가한 이후에도 add, commit, push를 시도해보면 다시 오류가 발생할 수 있다. 그 이유는 이전에 해당 파일 및 폴더가 이미 git 서버에 올라가 있기 때문에 cache를 지워준 후 올려야 한다.
git rm -r --cached .
위 명령을 입력해주면 기존에 올라가 있던 정보들에 대한 cache가 삭제된다. 필요한 파일들은 지금 다시 add, commit, push 할 것이기 떄문에 안심하고 진행해도 괜찮다.
이제 add, commit. push를 해보고 잘 올라가는지 확인하자!!