모르고 .env를 푸시해 버렸을 때

정민·2022년 10월 14일
0

가끔 프로젝트 초기 세팅때 정신을 놓고 있다가 .gitignore 설정을 까먹고 .env 를 푸시해버리는 경우가 있다.

그냥 커밋이더라도 놀랄텐데… 푸시?

ㅎㄷㄷ…

24시간 github를 돌아다니는 어떤 해커가 곧바로 내 소중한 환경 변수들을 탈취해갈까 손발이 덜덜 떨린다…

이럴 경우에는 아래와 같이 진행하면 된다.

1. commit id 확인

먼저 git log 를 통해 내가 커밋 목록을 확인한다. 그러면 아래와 같은 커밋 목록이 뜬다.

이중 문제가 되는 커밋이 무엇인지 확인한다. 노란 글씨로된 commit 옆 해시값이 중요하다. 이것이 바로 commit id다!

2. 문제 commit 전으로 되돌리기

우리는 이제 git reset 을 통해 해당 커밋이 되기 전 상황으로 돌아가야 한다.

만약 해당 커밋 이후의 모든 내용을 지우고 싶다면 (현재 로컬 에디터의 코드 변경사항이 지워져도 상관 없다면) --hard 옵션을,

커밋 이력만 지우고 싶다면(현재 로컬에 있는 코드 변경사항이 지워지지 않길 바란다면) --soft 옵션을 준다.

git reset --soft "문제 commit id"

이런식으로 하면 해당 커밋이 삭제 된다.

3. 캐시 삭제

이후 .gitignore.env 파일을 올려놓았는데도 .env 가 회색으로 보이지 않는 경우가 있다.

이때는

git rm .env --cached

을 통해 캐시를 삭제해준다.

이후 git add . 를 다시 해주고 git status 를 통해 .env 파일이 없는지 다시 확인해보자.

4. 새 commit

이번에는 .env 파일이 잘 빠져있는지 확인한 후, 새로운 commit을 한다.

git commit -m "remove .env file from git"

이후 다시 push를 해주자. (-force 옵션을 안주면 무조건 에러가 난다…)

git push -f

profile
괴발개발~

0개의 댓글