프로젝트를 진행하면서 깃 저장소를 그냥 private으로만 두고 모든 파일을 마음껏 올려두었었는데.. 나중에 public으로 돌리려하니 중요 키 값과 개인정보가 남아있는 application.yml 파일과 application.properties 파일을 삭제해야 하는 상황이 왔다. 해당 파일들을 삭제하였지만, 문제는 커밋 히스토리에는 계속 남아있다는 것이었는데, 이를 지금부터 해결해보고자 한다.
git filter-branch -f --index-filter "git rm --cached --ignore-unmatch ./src/main/resources/application.yml" --prune-empty -- --all
git filter-branch -f --index-filter "git rm --cached --ignore-unmatch ./src/main/resources/application.properties" --prune-empty -- --all
이처럼 경로명과 함께 파일명을 작성해주면, rewrite가 진행되는 것을 볼 수 있고, 이를 기다려주면 끝이다.
그러나 ./build/resources/main/
해당 경로에도 파일이 남아있기 때문에 다음과 같은 코드를 추가로 작성해 주어야 한다.
git filter-branch -f --index-filter "git rm --cached --ignore-unmatch ./build/resources/main/application.yml" --prune-empty -- --all
git filter-branch -f --index-filter "git rm --cached --ignore-unmatch ./build/resources/main/application.properties" --prune-empty -- --all
정말 마지막으로 push를 해주면 된다
git push --force --all
오랜 노고 끝에 깃 커밋 히스토리에서 yml, properties 파일 지우기 성공!
참고: