여씨의 개발이야기
[GitHub] 원격 저장소에서 원하는 파일 기록까지 모두 제거하는 방법 본문
github을 이용하다 보면 잘못해서 보안에 예민한 파일들이 올라갈 때가 있다. 이렇게 이전에 올라간 파일을 원격 저장소에서도 모두 제거하고 싶을 때, 로컬에서 일반적인 파일 삭제를 하고 난 뒤에 commit을 한다면 이전 기록에서 해당 파일을 조회할 수 있기 때문에 좋지 않은 방법이다.
이럴 때 아래와 같은 해결 방법을 사용할 수 있다. 기본적으로 Git에서 제공하는 filter-branch 툴을 사용하는 방법이 있다. 이 포스팅에서는 소개하지 않았지만 별도로 BFG Repo-Cleaner를 사용하는 방법 또한 있으니 따로 알아보면 될 것이다.
1. git filter 명령어 입력
1-1. 파일일 경우에는 아래와 같이 입력한다
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch 파일명" --prune-empty --tag-name-filter cat -- --all
1-2. 디렉토리일 경우에는 아래와 같이 입력한다
git filter-branch --force --index-filter "git rm -r --cached --ignore-unmatch 폴더명" --prune-empty --tag-name-filter cat -- --all
위의 명령어를 실행하고나면 로컬에 있는 저장소에 있는 이전 commit 들에서 파일이나 폴더가 전부 제거된다.
2. 원격 저장소에 반영하기
git add *
git commit -m ""
git push origin master --force
위와 같이 push –force 명령어를 입력해주면 원격 저장소에서도 반영된다.
'😺 Git' 카테고리의 다른 글
[FRISM] 국내 형상관리 툴 용어 정리 (0) | 2023.12.16 |
---|---|
[Gitlab] merge request 제한하는 법 (0) | 2023.11.03 |
[Github] 재미없는 내 git 프로필 꾸미기 (이름하야 깃꾸) (0) | 2022.03.31 |
[GitHub] react app을 github.io 홈페이지로 만들기 (0) | 2022.01.11 |
[GitHub] 다른 repository에 복사 후 clone까지 하는 법 (0) | 2022.01.11 |
Comments