GitHub에서 실수로 올린 디렉토리를 모두 삭제하는 법

차한음·2024년 9월 9일
0

.idea 디렉토리를 모든 커밋에서 제거를 해야할 상황이 있어서, GitHub에서 이미 커밋한 디렉토리를 모두 삭제하는 방법에 대해서 총정리를 해봤다.

먼저, 로컬 저장소의 모든 브랜치에서 특정 디렉토리를 제거합니다.

git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch [제거하고 싶은 디렉토리명]' --prune-empty --tag-name-filter cat -- --al

변경사항을 강제로 원격 저장소에 푸시합니다.

git push origin --force --all

태그도 강제로 푸시합니다 (태그가 있는 경우):

git push origin --force --tags

로컬 저장소를 정리합니다:

git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now

이 작업은 저장소의 전체 히스토리를 수정하므로 매우 신중하게 진행해야 합니다.
다른 협업자들에게 이 변경사항을 알리고, 그들의 로컬 저장소를 새로운 히스토리로 업데이트하도록 안내해야 합니다.
이 작업 후에는 모든 협업자가 git pull --rebase를 실행해야 합니다.
이 과정을 거치면 저장소의 모든 커밋에서 특정 디렉토리가 제거되고, .gitignore에 특정 디렉토리가 추가되어 있으므로 앞으로도 이 디렉토리는 Git에 의해 추적되지 않을 것입니다.

profile
프론트엔드 개발자

0개의 댓글