티스토리 뷰
개발 중에 env.example인데 실제 키값이 들어가서 동료분이 커밋 히스토리를 삭제하고 다시 커밋해달라고 요청하심
특정 파일만 히스토리를 삭제하는 방법을 Cursor의 도움으로 해결하고 정리용으로 블로그를 작성한 것입니다.
문제 상황
env.example 파일에 실제 API 키실수로 커밋되었습니다
# 노출된 민감정보 예시
KEY=1234
이미 여러 커밋에 걸쳐 히스토리에 남아있고, PR도 생성된 상태였습니다.
해결 과정
1단계: 히스토리에서 완전 제거
git-filter-repo 사용
# 도구 설치
pip3 install --user git-filter-repo
# 전체 히스토리에서 민감파일 제거
git-filter-repo --force --invert-paths --path env.example
주의사항: git-filter-repo는 기존 히스토리를 완전히 재작성하므로 반드시 백업을 먼저 생성하세요.
2단계: 원격 저장소 강제 동기화
# 원격 remote 재설정 (filter-repo가 제거함)
git remote add origin https://github.com/your-repo.git
# 모든 브랜치와 태그에 강제 푸시
git push --force --all origin
git push --force --tags origin
⚠️ 중요: 팀원들에게 사전 공지 후 진행하세요. 다른 팀원들의 로컬 저장소도 재클론이 필요할 수 있습니다.
3단계: 안전한 환경변수 파일 재생성
# 플레이스홀더만 포함한 안전한 env.example 생성 후
git add env.example
- 참고 블로그
https://smecsm.tistory.com/260
(Git) 이전 Commit에서 특정 file만 삭제하기 (filter-repo)
FILE_NAME에 git repository를 root로 생각하고 경로를 포함하여 file 명을 넣습니다. git filter-repo --invert-paths --path FILE_NAME 본문 간혹 대용량 파일 및 개인정보를 commit하고 master에 까지 올리는 아주 큰 불
smecsm.tistory.com
반응형
'오류 해결' 카테고리의 다른 글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- polars
- cursorai
- docker
- rdflib
- vectorsearch
- vscode
- vervel
- Vue3
- 키워드추출
- PEFT
- deepseek
- pandas
- rdffox
- Kafka
- geospy
- LLM
- PostgreSQL
- Encoding
- SPARQL
- hadoop
- pdfmathtranslate
- ChatGPT
- AWS
- Claude
- Postgis
- TextRank
- vertorsearch
- MongoDB
- 지식그래프
- python
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
글 보관함