공유 소스 관리/Git

[GIT] Git History에서 특정 파일 기록 삭제하기

밍글링글링 2023. 1. 12.
728x90
개요

 

Github에 Public 으로 오픈해놓고 있는 Node 토이 프로젝트 소스가 있는데

env파일 내부에 DB서버 정보가 있는데, Push 하기 전 gitignore 에 해당 파일 경로를 사전에 등록해 놓지 않아서...

그대로 Git History에 기록되고, 파일도 올라갔다.

해당 파일은 지울 수 있다 해도, Git History로 수정된 내용으로 추적이 가능해서 이것도 지워야할텐데..

 

이 경우 뿐만 아니라, 보안상 중요한 정보 노출이 우려가 되는 파일들이 이미 올라가있다면,

파일도 지우고 History 파일 추적해서 커밋으로 수정된 내용으로 정보가 유출되지 않게.. 

 

그 방법을 알아본다...



728x90

 

해결방안

 

아래의 명령어를 보면
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch 파일명' --prune-empty -- --all
위 명령어의 '파일명' 대신 내가 기록 삭제할 파일명을 입력하고, 로컬에서 입력하면...
Rewirte, Commit 등의 텍스트들이 터미널에 뜨면서 작업이 완료된다.
로컬에서 위 명령어를 입력한 후,

 

git push --force --all
위와 같이... 강제 Push하면 해당 파일의 Git History가 삭제된다.
728x90

댓글