Github history 삭제하기

JoongHyeok.Velog·2022년 4월 10일
0

git

목록 보기
1/1
post-thumbnail

개발을 진행하다보면 깃허브에 실수로 민감한 정보를 커밋한 경우가 종종 발생합니다..(ex. 구글로그인을 위한 클라이언트 id, 클라이언트 보안 비밀 등등)
하지만 이미 커밋된 경우 뒤늦게 삭제를 한다하더라도 해당 레포지토리에는 history로 민감한정보가 남게 됩니다. 이를 위한 git에는 특정 history만을 삭제할 수 있는 기능이 있습니다. 이를 한번 정리해보겠습니다.

윈도우의 경우라면 해당 로컬폴더에서 git bash를 실행시키고 다음과 같은 명령어를 입력해줍니다.

$ git filter-branch --force --index-filter "git rm --cached 
--ignore-unmatch  [해당 파일 명]" --prune-empty --tag-name-filter cat -- --all   

위 명령어를 git bash에서 실행시키게 된다면 원격 git repository의 history에서 해당 파일에 대한 history를 모두 찾아 Rewrite하게 됩니다. 이후

$ git push origin main --all

명령어를 통해 원격 git repository에 push하게 되면 특정파일이 포함된 history들이 모두 깔끔하게 사라진것을 알 수 있습니다.

당연히 민감한 정보는 처음부터 git에 올라가지 않도록 gitignore파일에 정리를 잘 하여 올라가지 않도록 하는것이 가장 좋겠지만 실수로 올라가는 일이 발생한다면 위와 같은 명령어를 통해 민감한 정보를 보호할 수 있을것 같습니다!

공식 문서 : https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository

profile
영차영차

0개의 댓글