민감한 정보 혹은 보안상 문제가 되는 파일 삭제하고 싶은 경우 사용 필요.
단순히 리포지토리에서 삭제한다면 git에서 추적한 기록이 남아 파일이 github상에서 계속 노출되어 있기 때문이다.
git add {변경한 파일명(경로포함)}
git commit -m 'delete {변경한 파일명(경로포함)}' git push {remote 저장소} {브랜치명}
or
git commit -m 'modify .gitignore' git push {remote 저장소} {브랜치명}
했는데 남아있는 경우 캐시 때문이므로 캐시 삭제하는 과정 필요
추가사항(캐시 있는 경우)
git rm -r --cached . git add . git commit -m "rm cache" git push origin main
위 과정을 거치면 파일이 안보이나 우리는 커밋 히스토리를 통해 전에 있던 파일을 확인 할 수 있다.
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch {경로/경로/파일명.확장자}' --prune-empty --tag-name-filter cat -- --all
경로를 잘 작성해 주어야 한다.
예시)
- 제일 외부에 있는 경우
./.env
- src 디렉토리 안에 있는 경우
./src/App.js
잘 작성이 된다면...!
아래 이미지와 같이 뜰거다!!
git add . git commit -m "delete .env file from history" git push origin --force --all
참고