GitHub large 파일로 푸시가 안될때

2018. 5. 4. 12:29Development/[Dev] 개발일반

728x90

100mb 등의 큰 파일로 인해 로컬 커밋은 되나


리모트 저장소로 푸시가 안되는 경우는 다음 2가지 정도의 방법으로 해결이 가능하다.



1. 용량이 큰파일을 커밋 캐시에서 삭제하여 커밋을 하지않도록 클린(?)하게 만들고 푸시한다.


2. 애초에 큰 파일을 .gitignore 파일에 명시하여 처음부터 로컬에서부터 커밋하지 않는다.


(2번의 경우는 .gitignore 파일에 미리 명시하여 우선적으로 이 파일만 커밋, 리모트에 푸시합니다)




[ 1번 상세 ]

1번의 경우 gitignore 파일조차 푸시하여 리모트로 올릴 수가 없는 상태이기 때문에 파일 제외는 캐시에서 삭제 후 푸시하는 수밖에 없다.


따라서 해당 로컬 저장소의 .git 디렉토리가 있는 최상위로 이동하여 다음 명령어로 캐시를 클린한다


$ git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch 캐시삭제할 용량큰 파일명' HEAD






이어서 


변경 사항 반영 하고 다시 푸시 하면 끝


$ git commit --amend -CHEAD


$ git push



자세한 사항은

 https://help.github.com/articles/removing-files-from-a-repository-s-history/

https://stackoverflow.com/a/23657759 참조~

728x90