[GitHub] 민감한 정보 완전 삭제와 PR 히스토리 정리

GitHub 리포지토리에 보안정책에 위반되거나 민감한 정보를 실수로 업로드하는 경우가 있다. 해당 브랜치를 지우거나 커밋 히스토리를 밀어버려도 이미 머지된 Pull Request라면, 깃허브 UI의 closed request 탭에서 파일 히스토리를 확인하면 해당 내용이 그대로 남아 있어 별도의 조치가 필요하다. 1. 민감정보 파일 완전 삭제 (리포지토리 복제 및 재생성) 1-1. 기존 리포지토리 클론 및 민감 정보 제거 git clone --mirror https://github.com/username/repo.git cd repo.git # BFG Repo-Cleaner 다운로드 curl -L -o bfg.jar https://repo1.maven.org/maven2/com/madgag/bfg/1.13.0/bfg-1.13.0.jar # 민감한 파일 깃 히스토리에서 완전 제거 java -jar bfg.jar --delete-files 'test.properties(삭제파일명)' # Git Garbage Collection 수행 ( Git reflog를 만료 시키고, 쓰지 않는 객체 삭제 ) git reflog expire --expire=now --all git gc --prune=now --aggressive 1-2. 기존 리포지토리에 클린 된 히스토리 강제 푸시 git push --force --all git push --force --tags ...

June 19, 2024 · Jun Kang