커밋직후 발견하지 못하고 어느정도 커밋내역이 쌓였을때
미처 .gitignore하지 않아 db pw나 개인ssh키 같은 민감한 정보를 업로드 할 수 있다.
repo를 다시 만드는 방법이외에 아예 특정 파일을 커밋내역에서 해당파일을 지워서
원격저장소에 다시 업로드 하는 방법이 있다.
주의!
원본파일이 삭제될 수 있으므로 해당 파일을 백업해 두는 것이 좋다.
아래 명령어를 git 디렉토리에서 입력하자
git filter-branch --tree-filter 'rm -f 파일이름' HEAD
파일이름에 폴더도 가능하다.
그리고 하위폴더에 있는 파일을 삭제하고 싶은 경우
폴더/파일이름 이렇게 해서 삭제 가능하다.
이후 원격저장소에 덮어씌우면
git push origin --force --all
파일이 커밋내역에서 삭제된다.
참고한 곳