본문 바로가기
Git

git 히스토리 삭제 github 특정 파일 (보안파일, 패스워드, 비밀번호) 히스토리 삭제하는 방법

by @hohoya33 2022년 01월 26일

Git 과 Github 를 사용하다 보면 rivate 일 경우에도 remote 에 올리지 말아야할 password 나 secret_key 등의 민감한 데이터를 commit 하는 실수를 할 수 있습니다.

 

git filter-branch를 통해 해당 파일을 git 전체 히스토리에서 필터링해여 재작성해줍니다.

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch {filename}' --prune-empty -- --all

 

 예제) 

 filename 에 경로까지 작성합니다.

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch gf5/console/basic.php' --prune-empty -- --all

 

Rewirte 와 커밋 리스트가 출력되면서 작업이 완료 됩니다.

마지막으로  아래 명령어를 통해 강제 push를 하게되면 remote 역시 해당 file의 history가 삭제됩니다.

git push origin --force --all

 

위 명령어가 수행되지 않을때

github Cannot rewrite branches: You have unstaged changes.

git status
git add --all

수정된 파일이 없는지 확인해 봅니다.

개의 댓글