Github 오래된 commit 민감정보 삭제(git filter-repo)

DaYoung·2023년 11월 8일

Github

목록 보기
1/2

사이드 프로젝트를 진행하면서 github에 소스를 올리면서 중요한 코드를 삭제하지 않고 올렸다는 사실을 알게되었다.
github에서 commit 내역을 모두 지워야하는 상황... 띠로리

방법은 git filter-repo 도구 또는 BFG Repo-Cleaner
오픈 소스 도구를 사용할 수 있는데 git filter-repo가 더 간단해보여서 이걸로 선택하였다.


삭제할 내용이 포함된 파일을 백업한 다음, 아래와 같은 명령어를 입력해준다.

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 삭제할 파일의 전체경로' --prune-empty --tag-name-filter cat -- --all

삭제할 파일의 전체경로는 github에 나와있는 주소로도 확인이 되지만 아래와 같은 명령어를 사용하면 리포지토리 내의 모든 파일과 디렉토리를 확인할 수 있다. 그리고 경로는 꼭!! 정확하게 파일명까지 적어줘야한다.
git ls-files

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch "src/views/firebase.ts"' --prune-empty --tag-name-filter cat -- --all 이런식으로!!
그 다음 아래와 같은 명령어를 입력해준다.
git push origin --force --all

그리고 나면 해당 파일이 전부 삭제되어 있다!

profile
안녕하세요. 프론트앤드 개발자 홍다영입니다.

0개의 댓글