특정 repo에서 특정 폴더를 history를 포함해 모두 삭제해야 하는 상황이 생겼다. filter 명령어를 사용하면 특정 폴더/파일을 history를 포함해 원격 repo에서 모두 삭제할 수 있다는 것을 알 수 있었고, 방법을 공유하고자 한다. 여러 가지 명령어들이 있었는데 이 명령어가 제일 확실했다.
아래 명령어를 이용하면 된다.
git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch {폴더일 경우 : forder_name/ 파일일 경우 : file_name.ext}' --prune-empty --tag-name-filter cat -- --all
파일일 경우 파일이름.확장자
형태로 작성해주면 되고, 본인은 폴더 전체를 삭제했어야 했으므로 폴더이름/
으로 작성해줬다.
명령어가 잘 동작하면 사진처럼 rm으로 git이 해당 폴더/파일을 찾아 삭제해준다. 삭제가 잘 되었다면 해당 내용을 repo에 commit해주면 삭제하고자 했던 폴더/파일이 history까지 깔끔하게 삭제된 것을 확인할 수 있다!