[Git] Github에 대용량 파일 올리기 (git-lfs) - 사용 안하기로!

이슬비·2023년 1월 19일
0

git

목록 보기
1/1

0. 갑자기 git-lfs?


가끔 연구실에서 필요한 코드나 데이터를 github에 업로드할 때 수도없이 마주친 저 에러들 ...
저 오류가 뜰 때마다 쫌쫌따리로 올리고 못 올리는 건 포기했다가 이번에 마음 먹고 고쳐보기로 했다!

1. git-lfs란?

Git Large File Storage의 LFS로, 큰 파일들을 올리기 위한 곳이다. 그런데 아-주 큰 단점이 있다! 그것은 바로,

Github LFS는 용량 제한이 있다 (3.4GB)

물론 용량을 더 구매해서 쓸 수 있기도 한데 굳이 ㅎㅎ? ...

2. 사용 방법 (linux)

2-1. 설치

연구실 서버가 리눅스 기반이라 리눅스를 이용한다.

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt install git-lfs

이후에 git-lfs를 사용할 레포지토리로 이동한다. 그 후에

pip install git-lfs

간단하게 pip를 통해 설치할 수 있다.

여기서 바로 git add .를 해버리면 안된다. 그 전에 tracked, 혹은 staged 되어 있는 모든 파일들을 제거 해야 한다. unstage 방법은 아래 블로그를 참고하도록 하자.
(unstage 시키기)

그 후에는 lfs로 보낼 파일들을 따로 tracking 할 수 있도록 아래의 명령어를 써준다.

git lfs track "*.npy"

나는 대부분 큰 데이터들이 많았기 때문에 .npy 파일들만 관리해주려고 했는데 이마저도 안됨 ㅋㅋ... 파일 확장자명을 쓰지 않고도 해봤는데 아마도 안 되는 것 같다.

이 다음으로는 add -> commit -> push의 순서를 거치면 되는데, add를 할 때의 주의점은

git add .gitattributes

를 써주어야 한다는 것이다.

2. 삭제

곧바로 uninstall을 하면 안되고 tracking을 먼저 해제 해야 한다.

git lfs migrate export --everything --include='*.npy'

이거 안해줬다가 안됨

다음에는 바로 lfs를 uninstall 시켜주면 된다.

git lfs uninstall

나는 해줬다가 실패 했으니 ... 커밋 히스토리에서 .gitattributes 파일까지 모두 제거해주었다.

git filter-branch -f --prune-empty --tree-filter '
  git rm -f .gitattributes --ignore-unmatch
' --tag-name-filter cat -- --all

3. 마치며

여러 군데 찾아본 결과, uninstall 하고 track을 해제하여도 이미 lfs가 차지하고 있는 저장 공간은 돌아오지 않는다고 한다 ^^... 일단은 좀 더 써보고 영 못해먹겠으면 새로 파든가 해야지 ...

profile
정말 알아?

0개의 댓글