Post

원격 저장소에 원하는 파일/디렉토리 및 기록 삭제

방법

비밀번호나 중요한 정보가 들어간 파일/디렉토리를 실수로 커밋/푸시해버렸을 경우 삭제하는 방법에 대하여 기술한다.

파일의 경우

1
2
3
git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch <파일명>' \
  --prune-empty --tag-name-filter cat -- --all

디렉토리의 경우

1
2
3
git filter-branch --force --index-filter \
  'git rm -r --cached --ignore-unmatch <디렉토리명>' \
  --prune-empty --tag-name-filter cat -- --all

푸시

위 명령어를 실행 시 로컬 저장소에 해당 파일/디렉토리와 관련된 커밋들이 모조리 사라진다. 이렇게 사라진 기록을 --force 옵션을 줘서 강제로 푸시한다.

1
2
3
git add *
git commit -m "delete file/history"
git push origin master --force

출처

아래 문서를 참고하였다

https://melonicedlatte.com/programming/2019/04/20/031700.html

This post is licensed under CC BY 4.0 by the author.