git 형상을 관리하다보면 실수로 넣지 말아야할 파일(민감정보가 들어간 설정파일이라거나..)들이 들어간뒤 remote에 push될 때가 있다. 이경우 해당 파일을 삭제하고 git내의 형상 로그에서 모두 지우고 remote 서버에까지 반영하고 싶을때 다음의 명령을 따른다.
# foldername이라는 폴더를 모두 지우고 관련된 커밋 메시지도 처리.
> git filter-branch --tree-filter 'rm -rf ./foldername' HEAD
Rewrite ffc820911941f31ef6433439c6e582be2f87627d (99/103) (5 seconds passed, remaining 0 predicted)
Ref 'refs/heads/master' was rewritten
# 해당 브랜치의 백업때문에 repository의 commit이나 특정 명령어가 안될수 있음. 아래의 명령어 실행
> git update-ref -d refs/original/refs/heads/master
# remote에는 force push한다.
> git push origin master --force