GITHUB

[GitHub].env파일이 원격에 올라갔을 때 조치방법

먹지 2024. 2. 21. 23:58

지난 포스팅의 전말이다.

gitignore에 .env를 적용해놨지만, 새 브랜치를 만들면서 이그노어에 추가하지 못한 .env파일이 올라가버렸다.

무서운 이야기


시도했던 방법은 다음과 같다.

1. 깃에서 삭제하기

echo '.env' >> .gitignore
git rm -r --cached .env
git add .gitignore
git commit -m 'untracking .env'
git push origin main

2. 캐시 삭제

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch .env' --prune-empty --tag-name-filter cat -- --all

이 때, 파일 경로 명을 ./~ 부터 잘 적어줘야한다.

3. 재업로드

git add .
git commit -m ":fire Delete : GoogleService-Info.plist from history"
git push origin --force --all

★주의할 점

해당 작업을 실행하면, .env를 올린 시점부터의 이후 커밋은 사라진다. 그 말은 즉슨, 세이브본도 같이 사라진다는 말이다.

원하는 작업이 남아있는 경우, 복사본을 만들고 실행하는 것을 추천한다.


해당 작업은 작업을 실행한 브랜치에만 해당되고, 타 브랜치에는 해당되지 않기 때문에 merge를 강행했다면,,,,(슬픈 혹자 이야기)

나의 경우는 해결하지 못해 복사본을 만들고 전 포스트의 단계를 수행했다.

이 글을 보고 있는 여러분은 merge시 잘 확인하고 해당 단계만 거치기 바란다.