본문 바로가기

notes

git commit 100MB이상 파일 지우기

@마크다운


github를 사용하던중에 commit이 약 140개가량이고 push를 하지 않았던 프로젝트가 있었다.

push를 하지 않았던건 귀찮음과 여러가지 사정이 겹쳐서 무기로 사용하기 위함이었는데..

어찌 됐든, push를 시도하던 도중 push가 실패하는 이슈가 발생했다.

원인은 github에 100MB이상 파일을 올릴수 없다는것이었다.

> github는 50MB이상 파일은 경고를 띄우고 100MB이상의 파일은 push가 실패한다.

> commit할때 좀 알려주면 안되나;;

본인처럼 push를 하지않고 commit만 주구장창하는경우에 이게 문제가 되는데

commit이 많은경우 100MB이상의 파일이 어디서 부터 포함되었는지 파악하기가 매우 까다롭기 때문이다.

현재 HEAD에 100MB파일을 포함하지 않더라도 이전 commit에 포함이 되어있다면 push가 실패하게 된다.

100MB이상의 mp4형식의 파일이 존재하여 push실패한다는 에러메시지를 리턴했다.

mp4파일은 현재 프로젝트에 쓰지않는 파일이니 commit내역에서 삭제해버리면 되는데...

언제부터 포함시켰고 언제까지 들어있었는지 commit을 상세하게 쓰지않아 파악하려면 시간이 매우 오래걸린다.

그래서

[https://rtyley.github.io/bfg-repo-cleaner]( https://rtyley.github.io/bfg-repo-cleaner/)

라는걸 찾았다.`

관리하려는 프로젝트의 `.git`폴더에 ```bfg-x.x.x.jar```를 다운받고

```

java -jar bfg-1.12.16.jar --delete-files "*.mp4"

```

라고 실행했더니 commit에서 mp4형식의 파일들이 모두 삭제되는걸 확인할 수 있다.

예제가 많으니 필요한걸 찾아서 쓰길 바란다.