Basic_Studies/그외
[Git] 실수로 올린 .env파일의 이전 커밋 히스토리까지 싹 삭제하는 방법
adore_voy
2021. 9. 12. 19:26
상황
본인 전화번호까지 들어 있는 .env 파일을 깔끔하게 원격 레포지토리에 커밋해버렸다.
새로 api키를 받자 하니 몽고디비 비밀번호도 변경해야하고 할 일이 너무 많았다.
그래서, 깃허브에 올렸던 .env 관련 커밋 히스토리들을 싹 삭제해버리기로 했다.
참고로
.gitignore은 git add 시키기 전에 설정 돼 있어야 적용된다고 한다... 뒤늦게 .env를 넣어 이런 대참사가 발생한 듯 하다.
그리고 깃허브에 잘못 올라간 파일을 삭제한다고 해도 최근 기록에만 삭제가 돼 있을 뿐, 이전 기록을 찾으면 충분히 다른 사람도 중요한 기록을 읽을 수 있다. Public Repository가 아니었어서 다행이지만 공개하고싶기 때문에...
방법 1
$ git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch .env" HEAD $ git push --force
이 방법을 많이 추천하였으나, 위험성이 있어 보인다.
삭제도 제대로 되지 않았다.
방법 2
git-filter-repo 라는 패키지를 설치하여 삭제하는 방법이 있다.
패키지를 설치하려면 파이썬이 설치 돼 있어야 한다.
$ py -m pip install --user git-filter-repo
이제 조심해야겠다.
출처:
https://gist.github.com/gjerokrsteski/e4a10352448158ba827493eb116cda51
반응형