[Git]-커밋 내역에서 중요한 데이터, api key 지우기!

badassong·2023년 5월 17일
0

Git

목록 보기
5/6
post-thumbnail

유튜브 플젝을 깃에 올리고 나서 며칠 후에 이런 메일이 도착했다.

api key가 노출되어 있다는 경고 메일인데,
아니 난 분명 env 파일을 만들어서 gitignore에 저장했는데..?

근데 들어가서 커밋 히스토리 확인해보니 env파일 만들기 전에 api key를 그대로 노출한 채 커밋을 했었다..(개바보)

그래서 대체 이걸 어떻게 할까 하다가..
'커밋을 다 지우고 레포를 새로 만들어버려..?' 라는 생각도 했지만 그건 너무 아까웠다ㅠㅠ

Repo filter랑 뭐 이것저것 폭풍 구글링 하다가
Git 레포 기록에서 잘못된 데이터를 제거하기 위해 만들어졌다는 BFG Repo Cleaner라는 걸 발견했다!!
근데 이걸 사용하려면 java 버전 8 이상이 설치되어 있어야 한다고 해서 오라클 회원가입하고 java까지 설치했다..ㅋㅋㅋ

java를 설치한 후!

  1. https://rtyley.github.io/bfg-repo-cleaner/ 접속해서 bfg-repo-cleaner를 설치

  2. 지우고 싶은 키워드 목록을 담은 txt파일 생성
    예를 들어 내 커밋 내역에서 'removeword'와 'abc123'이라는 데이터를 지우고 싶다면 이렇게 아래처럼 작성한다!

    저장하고 난 혹시 몰라서 이 txt파일도 gitignore에 포함시켰다.

  3. 터미널에서 다운로드한 jar 파일 실행
    java -jar [BFG.jar의 경로] --replace-text [2에서 생성한 txt파일]

    나의 경우에는
    java -jar /Users/redcat17/Downloads/bfg-1.14.0.jar --replace-text replacements.txt
    이렇게 입력하고 실행시켰다!

    만약 파일을 통째로 숨기고 싶다면
    java -jar [BFG.jar의 경로] --delete-files [숨김처리할 파일명]
    입력하면 된다.

  4. Git에 push
    git push -f [remote명] [branch명]

    나의 경우에는
    git push -f origin master
    로 입력했다!

이 과정을 마치고 다시 커밋 내역을 확인해보니

이렇게 원래는 노출되어 있던 key부분이 ***REMOVED*** 로 처리되었다!

오늘의 교훈:
민감한 데이터나 api key들은 push 하기 전에 꼭 미리 환경변수로 설정하자!^^

profile
프론트엔드 대장이 되어보쟈

0개의 댓글