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

반응형