본문 바로가기

개발

불필요한 커밋 삭제하는 법 :: 깃에 api key 노출되었을 때

싸피에서 플젝을 하고 

깃랩에서 깃허브로 넘기는 과정에서

 

아이디 비번, key들을 모아놓은 파일이 노출되었다.

 

파일 자체는 이후에 삭제해서 없는 상태인데 

commit 내역에 있어서 

 

깃 가디언에서 이런 메일이 왔다.

 

위에 파란 링크 말고 보라색 링크를 누르면 문제되는 페이지로 바로 연결된다. 

 

코치님의 조언을 받아서

 

git-filter-repo를 사용해서 문제를 해결했다.

 

git-filter-repo를 사용하기 위해서는 일단 python을 깔아야 한다. 

그리고 scoop 이라는 걸 설치한다.

 

powerShell 에서 진행했다.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

 

실행 규칙 변경
실행 정책은 신뢰하지 않는 스크립트로부터 사용자를 보호합니다. 실행 정책을 변경하면 about_Execution_Policies 도움말
항목(https://go.microsoft.com/fwlink/?LinkID=135170)에 설명된 보안 위험에 노출될 수 있습니다. 실행 정책을
변경하시겠습니까?
[Y] 예(Y)  [A] 모두 예(A)  [N] 아니요(N)  [L] 모두 아니요(L)  [S] 일시 중단(S)  [?] 도움말 (기본값은 "N"):

 

이 부분이 나오면 y 를 입력한다.

 

irm get.scoop.sh | iex

 

까지 입력하면 scoop 설치 완.

 

 

그리고 

pip install git-filter-repo

 

을 해준다.

 

git-filter-repo가 잘 설치되었는지 확인을 해야하는데 확인할 수 있는 방법은

python이 설치된 곳에 가서 Scripts 폴더에서 볼 수 있다.

 

pip show git-filter-repo

 

을 통해 경로를 확인하면 Location이 나온다.

 

보통 Lib 상위로 가면 Scripts 파일이 보인다.

 

나는 위에서 install을 했음에도 Script 폴더에 git-filter-repo 파일이 없어서 

pip install git-filter-repo --force-reinstall

 

다시 강제설치했다.

 

 git filter-repo --path <삭제하고 싶은 파일이 있는 경로> --invert-paths --force

 

git log --oneline

 

로그를 확인해보고 삭제가 되었다면

 

git push origin <브랜치 이름> --force

 

push 한다.

 

이해가 잘 안된다거나 에러가 발생한다면 gpt와 함께,,하는 것두,, 좋은 방법,,