18. [Project] 민감정보 저장한 .env 파일이 Git Repository에 Push 됐을 때

김미숙's avatar
Jul 22, 2025
18. [Project] 민감정보 저장한 .env 파일이 Git Repository에 Push 됐을 때

문제

.env 파일에 Key 등 민감정보를 넣었는데 파일 만들면서 Git에 추가하기를 체크하고 commit 하기 전 지우지 않아서 그대로 push 됐다
공개되있는 Repository라 그대로 둘 수 없어서 BFG Repo-Cleaner를 사용해서 커밋을 완전히 제거해야했다
브랜치 보호가 되어 있는 상태라 프로젝트 팀장에게 임시로 권한을 요청한 후 실행했다
📌 BFG Repo-Cleaner란
Git 기록에서 민감한 파일이나 커밋을 완전히 제거할 수 있게 해주는 고성능 도구
Git 히스토리 안에 들어있는
  • 비밀번호
  • 토큰(API Key)
  • 서비스 키(JSON)
  • 대용량 파일 등
    • 👉 이런 것들을 빠르게 삭제할 수 있음
 

해결

.env 파일이 Git 기록에 남아 있는 상태이므로, BFG 툴을 사용해 모든 기록에서 완전히 제거

처리 절차 (Windows 기준)

# 1. 현재 작업 디렉토리로 이동 cd C:/workspace/pro_lec_2 # 2. 현재 Git 저장소를 --mirror 옵션으로 복제 git clone --mirror ./data data-cleaned.git # 3. BFG로 .env 파일 삭제 java -jar C:/Users/yourname/Downloads/bfg-1.14.0.jar --delete-files .env data-cleaned.git # 4. 정리된 저장소 디렉토리로 이동 cd data-cleaned.git # 5. Git GC 실행으로 기록 정리 git reflog expire --expire=now --all git gc --prune=now --aggressive # 6. 기존 원격 origin 제거 및 다시 연결 git remote remove origin git remote add origin https://github.com/ballkkaye/data.git # 7. 정리된 히스토리를 강제로 푸시 (모든 브랜치, 태그) git push --force origin --all git push --force origin --tags
⚠️ 위 작업은 히스토리를 덮어쓰므로 팀과 충분한 사전 공유 후 진행해야함
 

.env 추가 후 명령어(git add .) 실행 전 할 일

⛔️ 상황

.env 파일을 만들었는데, 깃에서 추적되고 있음
(예: 실수로 "Git에 추가" 체크하고 생성함)

처리 방법

# 1. Git 추적 제거 git rm --cached .env # 2. .gitignore에 무시 대상 추가 (이미 있으면 생략 가능) echo ".env" >> .gitignore # 3. 변경 사항 커밋 git add . git commit -m "Remove .env from tracking and add to .gitignore" # 4. 원격 저장소에 반영 git push origin <branch-name>
 

✅ 최종 체크리스트

.env.gitignore에 등록됨
.env는 Git 추적 대상 아님
민감 정보 포함 커밋은 Git 히스토리에서 제거됨 (필요 시 BFG 수행)
실제 환경에 사용될 키는 .env 또는 환경변수로 주입됨
 
Share article

parangdajavous