Skip to Content
Go Back
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기(강의) 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12

Git에 실수로 큰 파일을 커밋했을 때 제거하는 방법

filter-branch 명령어를 이용한다

자세한 설명은 How to remove a big file wrongly committed to a Git repo를 참고하자. 아래 명령어를 이용한다.

git filter-branch --tree-filter 'rm path/to/your/bigfile' HEAD

git push origin master --force

만약 폴더째로 삭제해야 하면 아래처럼 rm-rf 옵션을 붙여 준다.

git filter-branch --tree-filter 'rm -rf path/to/your/folder' HEAD

git push origin master --force

위 명령어로 commit history를 변경하기 전에, 모든 작업자가 작업 내용을 푸시하게 하고 나도 최신으로 pull하자. 그래야 미처 반영하지 않은 작업 내용이 날아가지 않을 것이다.

commit history를 변경했으니, 강제 푸시(git push -f)가 아니면 푸시되지 않는다. 공동 작업자가 있다면 git pull -f를 사용해 강제로 pull을 받아야 한다.

당연한 이야기지만 커밋할 필요가 없는 큰 파일은 다시 커밋되지 않게 .gitignore에 추가하자.

그리고 이런 처리를 한 다음에 .git폴더 용량을 확인해 봐도 용량이 변하지 않을 수도 있다. 내가 그랬는데, 다시 clone을 하자 용량이 확 준 것을 확인할 수 있었다.

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다