코딩

[Git] Warning: Large files detected. 본문

Git

[Git] Warning: Large files detected.

ssooyn_n 2022. 12. 16. 00:17

 

리파지토리를 이동해주는 과정에서 

100MB가 넘는 파일을 push하려니 오류가나는 일이 발생하였다.

데이터가 50만건 쯤 있는 sql 파일이었는데, push하는 과정에서 한번 이런 오류가 나고 commit 기록이 남아있는 상태에서

무작정 방법들을 쓰려고하니 잘 되지 않았다. 

 

내가 찾아본 방법은

1. Git LFS

2. Git config에서 Increasing buffer size

3. BFG

로 1번과 2번은 왜인지 해결이 되지 않았고, 100MB가 넘어가는 sql파일이 굳이 필요하지 않은 파일이었어서

3번으로 오류를 해결할 수 있었다.

 

Git은 100M가 넘는 파일을 push하지 못한다. 

BFG Repo-Cleaner을 통해서 해당 에러를 해결해주었다.

 

https://rtyley.github.io/bfg-repo-cleaner/

 

BFG Repo-Cleaner by rtyley

$ bfg --strip-blobs-bigger-than 100M --replace-text banned.txt repo.git an alternative to git-filter-branch The BFG is a simpler, faster alternative to git-filter-branch for cleansing bad data out of your Git repository history: Removing Crazy Big Files Re

rtyley.github.io

bfg.jar 파일을 다운 받아서 원하는 경로에 다운받아주고 그 bfg.jar파일이 있는 경로에서 clone한 git폴더를 가리키면 된다.

 

java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 100M git폴더

100M 가 넘는 blob(Binary Large Object)들을 제거해주라는 뜻이다(strip-out).

하지만 주의할 점은 위 명령어만으로 물리적으로 파일을 삭제해주는것은 아니다. 

 

꼭 아래 명령어 까지 같이 실행해 주어야 push할 때 오류가 나지 않는다.

$ cd some-big-repo.git
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive

 

'Git' 카테고리의 다른 글

Jenkins와 Git Webhook 연결하기  (0) 2023.01.31
Comments