반응형
들어가며
GitHub에서 특정 파일을 삭제하고 해당 파일의 모든 히스토리를 삭제하는 것은 프로젝트의 데이터 관리와 보안 측면에서 중요한 작업 중 하나입니다. 이 작업은 실수로 민감한 정보를 커밋한 경우나 더 이상 필요하지 않는 파일을 제거해야 할 때 유용합니다. 오늘은 GitHub에서 특정 파일을 삭제하고 해당 파일의 히스토리까지 완벽하게 제거하는 방법을 안내하겠습니다. 아래에서 단계별로 설명하겠습니다.
Git 특정 파일 삭제 명령어
가장 많이 발생하는 .env file을 예시로 작성해 보겠습니다.
1. env 파일 기록 삭제
git rm .env --cached
2. 원격 저장소에 반영
git add .
git commit -m "remove: env from git"
git push origin "branch-name"
[ Example ]
git push origin main
* 여기까지 진행하면 원격저장소에서 .env 파일이 삭제됩니다. 그러나 이전에 commit 했던 기록들이 남아있기 때문에 여전히 보안에 위협적인 상황입니다. 특정 파일에 대한 모든 기록까지 제거하기 위한 방법을 이어가겠습니다.
3. 특정 파일에 대한 기록 삭제
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch 특정파일명" --prune-empty --tag-name-filter cat -- --all
[ Example ]
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch .env" --prune-empty --tag-name-filter cat -- --all
* 파일 삭제
./파일명.확장자 ( ex. ./main.ts 또는 .env )
* 폴더 삭제
-r option을 추가로 작성해줘야 한다.
4. 원격 저장소 모든 기록에 반영
git push origin --force --all
마치며
GitHub에서 특정 파일을 삭제하고 그 파일의 모든 히스토리를 삭제하는 것은 조심스러운 작업입니다. 그러나 위에서 설명한 단계를 따라 진행하면 이를 안전하게 수행할 수 있습니다. 이것은 프로젝트의 보안 및 데이터 관리를 효과적으로 관리하는 데 도움이 될 것입니다. 파일을 삭제할 때 항상 필요한 데이터를 백업하고, 팀원들과 상의한 후에 작업하는 것을 잊지 마세요. Git 및 GitHub의 강력한 기능을 올바르게 활용하면 프로젝트를 효과적으로 관리하고 유지할 수 있을 것입니다.
반응형
'PROGRAMMING > Git' 카테고리의 다른 글
[GitHub] 원격 저장소 업로드 시 대소문자 이슈 해결 방법 (1) | 2023.08.27 |
---|---|
[GitHub] DS_Store 파일 정의, 삭제방법 (feat.Mac OS) (27) | 2023.03.19 |
[Github] 깃허브 README.md에 이미지 올리기 (feat.Issue) (26) | 2023.03.05 |
[Github] 깃허브 초기화 방법 (feat.git init) (11) | 2023.02.09 |
[Github] github에 잘못 올린 파일 삭제 | gitignore가 안될 때 (feat.env file) (4) | 2023.02.07 |