지금 흐르는 눈물을 닦으며 포스팅 중이다. 실수로 리얼 중요하고 시크릿한 파일을 깃헙에 올렸는데 그걸 모르고 나는 푸쉬하고~ 풀하고 개ㅈㄹ을 해서 딱 커밋 목록 중간에 그 시크릿 파일이 올라가는 커밋이 있었다.
우선 눈물 한방울 찔끔 흘리고 시작했다.
우선 구글링을 해보니 다음과 같은 명령어로 모든 커밋 로그에 있는 파일들을 삭제할 수 있다고 한다.
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 파일명' --prune-empty --tag-name-filter cat -- --all
참고로 "파일명"에는 폴더가 아닌 특정 확장자를 가진 파일명을 입력해야 한다.
예를 들어 "config/password.json" 이런 식으로 해야한다.
그러면 이제 천천히 시작된다.
[사진 1: 커밋 로그에 올라온 파일 삭제 사진]
후,, 우선 뭔가 삭제되고 있다는 것 같다.
그리고 마지막으로 push 를 해주면 되는데 꼭 올리지 말아야 할 시크릿 파일은 gitignore 에 추가해서 커밋 후 푸쉬를 진행하도록 하자.
git push origin master --force
강제로 푸쉬를 하면 모든 브랜치들에 대한 커밋 로그 중에서, 위에서 삭제하려고 한 파일들이 사라진 것을 볼 수 있다.
정말 조심하자,,
반응형