[TIL] 220830

슬지로운 개발생활·2022년 8월 30일
0

TIL

목록 보기
71/73

github 특정 파일 히스토리 삭제

민감한 정보 혹은 보안상 문제가 되는 파일 삭제하고 싶은 경우 사용 필요.
단순히 리포지토리에서 삭제한다면 git에서 추적한 기록이 남아 파일이 github상에서 계속 노출되어 있기 때문이다.

1. .gitignore에 추가 혹은 파일 삭제

git add {변경한 파일명(경로포함)}

2. 변경사항 github에 반영

git commit -m 'delete {변경한 파일명(경로포함)}'
git push {remote 저장소} {브랜치명}

or

git commit -m 'modify .gitignore'
git push {remote 저장소} {브랜치명}

했는데 남아있는 경우 캐시 때문이므로 캐시 삭제하는 과정 필요

추가사항(캐시 있는 경우)

git rm -r --cached .
git add .
git commit -m "rm cache"
git push origin main

3. History 삭제

위 과정을 거치면 파일이 안보이나 우리는 커밋 히스토리를 통해 전에 있던 파일을 확인 할 수 있다.

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch {경로/경로/파일명.확장자}' --prune-empty --tag-name-filter cat -- --all

경로를 잘 작성해 주어야 한다.

예시)

  • 제일 외부에 있는 경우 ./.env
  • src 디렉토리 안에 있는 경우 ./src/App.js

잘 작성이 된다면...!
아래 이미지와 같이 뜰거다!!

4. 바뀐 내용 github에 반영

git add .
git commit -m "delete .env file from history"
git push origin --force --all

참고

0개의 댓글