출시 프로젝트 중에 사용한 네이버 지도 SDK를 Git에 업로드하기 위해서 사용했던 방법을 공유한다.
1. Git LFS 란?
LFS는 Large File Storage의 약자로, Git에서 관리중인 파일을 원격 서버에 업로드할 때
GitHub에는 업로드 가능한 용량 제한(100MB 미만)이 존재한다.
Git LFS는 오디오, 비디오 같은 큰 용량의 파일을 GitHub에 업로드 하려고 할 때 해당 파일들을
다른 원격 서버에 별도로 저장하고 GitHub에는 그 파일에 대한 포인터만 저장하게 해주는 오픈소스이다.
2. 사용 방법
1) Git LFS 설치
먼저 homebrew를 사용해서 Git LFS를 설치해준다.
$ brew install git-lfs
홈브루가 설치돼있지 않다면 아래 링크에서 설치해주자.
설치가 완료되면 터미널에 명령어를 입력해서 LFS 설정을 완료해준다.
$ git lfs install
2) Git LFS 시작하기
이제 업로드하고자 하는 대용량 파일을 LFS에서 관리할 수 있도록 지정해 줄 것이다.
만약 그 파일이 인덱스에 추가돼있다면 인덱스에서 제거 후 아래 명령어를 입력해주자.
$ git lfs track '지정할 파일 이름'
지정할 파일 이름에는 '*.psd' 처럼 특정 확장자를 가진 모든 파일을 지정해줄 수도 있고
'images/' 처럼 특정 폴더 또는 'images/*.psd' 처럼 특정 폴더의 특정 파일을 지정해줄 수도 있다.
3) 이슈
나는 CocoaPod으로 네이버 맵 SDK를 설치했기 때문에
Pods 폴더 전체를 지정하도록 아래 처럼 명령어를 입력했는데
$ git lfs track 'Pods/'
폴더의 하위 파일들을 재귀적으로 지정하는 방식이 아니라서 그런건지 업로드 할 때 오류가 발생했다.
그래서 결국 문제가 되는 대용량 파일의 이름을 직접 입력해서 해결할 수 있었다.
$ git lfs track 'Pods/NMapsMap/framework/NMapsMap.xcframework/ios-arm64_armv7/NMapsMap.framework/NMapsMap'
4) GitHub에 업로드
lfs가 해당 파일을 추적하도록 지정하면 디렉토리에 .gitattributes 라는 파일이 생성됐을 것이다.
이 파일을 추적할 파일과 함께 원격 저장소에 업로드 해줘야 한다.
아래처럼 명령어를 순서대로 입력하면 원격 저장소에 파일을 push할 때
LFS는 그 파일(지정한 파일)을 가로채서 Git LFS 서버로 보낸다.
$ git add .
$ git push origin main
이렇게 GitHub에 업로드된 파일은 Git LFS 서버와 연결하는 포인터가 저장된다.
3. 참고 자료
https://www.youtube.com/watch?v=uLR1RNqJ1Mw
'IOS' 카테고리의 다른 글
[IOS] Realm 사용해서 데이터 저장하기 (0) | 2022.10.05 |
---|---|
[IOS] API 통신에서 겪은 SSL 인증서 및 ATS 관련 이슈에 대하여 (0) | 2022.10.05 |
[IOS] CocoaPod의 pod install 오류에 대하여 (0) | 2022.09.09 |
[IOS] UIView의 tintColor 프로퍼티에 대하여 (0) | 2022.07.27 |
[IOS] UserDefault 사용해보기 (0) | 2022.07.17 |