[트러블슈팅] API key가 올라간 PR 처리하기

팀 프로젝트를 진행하면서 실수로 API 키가 PR에 올라왔다!

팀원분이 커밋을 하시고나서 모르고 계시다가 PR을 올린 후 같이 코드리뷰를 하다 발견해서 방법을 찾다가  PR은 지울 수 없다는 것을 알게됐다... 하지만 다같이 방법을 찾았다!

 

1) 깃허브에 문의해서 PR 지우기

2) 로컬 커밋에서 살릴 부분만 살리기

 

깃허브에 문의해서 PR 지우기

https://80000coding.oopy.io/dd8b0614-20b9-4574-a3bd-fb1f181bcaf6

 

깃허브에서 잘못 올린 PR 완전히 삭제하기 (1)

깃허브를 public으로 사용하다보면 실수로 외부에 공개되면 안되는 민감한 내용이 노출되기도 합니다.

80000coding.oopy.io

위 블로그를 참고해서 문의했다! 생각보다 금새 지워졌다 1시간정도??

 

 

로컬 커밋에서 필요한 커밋만 골라내기

개념만 알고있던 cherry-pick을 이번 기회에 활용해봤다!

방법을 찾다가 PR 올리신 팀원분이 결국 파일을 복사해두고 다시 만들어보겠다 하셔서 정확히 사용해본 적은 없지만 이걸 시도해보지 않겠냐고 제안드렸다

 

PR의 상황은 위와 같았다

과거의 커밋 중 하나에 api key가 포함됐고, 몇번의 커밋을 거친 후에 PR을 올려 reset 등으로 되돌리기가 조금 애매한 상황이었다

확인해보니 다행히 key가 포함된 커밋에는 특별히 큰 변경사항이 없었고, 문제가 없는 커밋들만 골라내서 기존 커밋이 없는 다른 브랜치로 옮길 수 없을까? 생각이 들었다.

 

cherry-pick이 딱 그 기능을 지원하고 있었다!

커밋ID를 이용해 다른 브랜치에서 현재 브랜치로 커밋을 복사해올 수 있다

방법은 간단하다

git cherry-pick [골라올 커밋 아이디들]

 

커밋 아이디 한개 혹은 지금처럼 여러개인 경우 띄어쓰기로 구분해 여러개를 골라올 수 있다

 

git cherry-pick 111 333 444

이렇게!

 

다행히 잘 처리되었다

캠프 초반에는 한 파일에 작업하다가 나는 충돌들 때문에 매일매일 고생했는데... 정말 오랜만에 깃 문제가 생겼다 그리고 아예 지우고 클론을 다시 받는다던가 파일을 복사해두고 다시 브랜치를 만들어 붙여넣는다던가 하는 방법이 아니라 나름.. 지원하는 기능들을 잘 활용한 것 같아 글을 정리하면서 좀 뿌듯해졌다..

 

화이팅!!