Do.

Git 잘못 올라간 파일 및 기록 삭제 본문

General Dev

Git 잘못 올라간 파일 및 기록 삭제

Hey_Hen 2022. 2. 21. 15:06

Intro

출시한 프로젝트에 GoogleCrashlytics랑 Analytics 달아놓고, 평생 비공개 할꺼라, 신경을 못썼는데, 프로젝트를 공개로 돌리려고 봤더니, GoogleService-Info.plist 가 노출이 되는걸, 뒤늦게 눈치챘다.
Gitignore에 넣는것도 깜빡했고, Commit 로그에도 남아있는 관계로... 깃에서 파일을 삭제하고 커밋 히스토리에서 해당 파일을 삭제하고자 했다.

파일 삭제

우선 git에 잘못 등록된 파일은 아래 명령어를 사용하자

git rm --cached -r <DIRECTROY>
git rm --cached <FILE_NAME>

cached 옵션은, remote에서 이를 삭제한다는 뜻으로 해당 옵션이 없으면 local에서도 삭제해버리니, 주의하자

삭제한 후, gitignore에 추가하고, commit, push하자

커밋 히스토리 삭제

지금 당장 올라간 파일은 삭제했지만, 깃은, 해당 커밋에 파일내용이 그대로 들어간다. 따라서, 히스토리에서도 해당 파일에 대한 내용을 삭제할 필요가 있다.

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch <PATH_FILE_NAME>' --prune-empty -- --all

입력한 파일 이름을 가지고 필터링 해서, 해당 커밋에서 내용을 삭제해준다.

좀 기다리면 커밋 아이디가 줄줄이 뜨면서 rewirte되었다고 뭐가 많이 나온다.
만약 Rewirte 내용이 안나온다면, 파일 이름을 맞게 입력했는지 패스는 맞는지 확인하자!

마치며.

애시당초 민감한 파일은, 비공개로 하더라고 애초에 리모트에 올리지 말자!

Comments