개발을 하다보면 DB관련 정보, API 키 등 개발자 또는 그 팀끼리만 알아야 하는 값들이 있다. 이러한 정보는 github repository등 공개적인 곳에 보여지면 안되기 때문에 .env
파일을 따로 생성해서 환경변수를 관리한다.
.env
파일은 로컬 작업 시에 필요하므로 로컬에는 남겨둬야 한다.
현재 진행중인 Next.js 프로젝트를 Vercel에 배포하고 있는 중이다. .env
파일 관리를 미리 했어야 하는데 하지 못했다.
Vercel Project Dashboard
-> Settings
-> Environment Variables
Key
, Value
채워넣기
DATABASE_URL = [DATABASE_URL Value] # KAKAO LOGIN KAKAO_CLIENT_ID = [KAKAO_CLIENT_ID Value] KAKAO_CLIENT_SECRET = [KAKAO_CLIENT_SECRET Value] # NEXTAUTH NEXTAUTH_URL = [NEXTAUTH_URL Value] NEXTAUTH_SECRET = [NEXTAUTH_SECRET Value]
위 값들을 Key
, Value
에 채워넣고 Save를 누르면 된다.
위 과정을 마무리하면 Vercel에서의 Setting은 끝났다.
이제 로컬에 있는 .env
파일을 github repository에 더이상 올리면 안되니까 .gitignore에 추가해줬다.
# env files
.env
하지만 github repository를 보면 저장소에 아직 .env
파일이 남아 있었고, 커밋 내역을 보면 .env
파일에 대한 기록이 남아있어서 누구나 볼 수 있었다. 이를 해결하기 위해서는 아래 2가지 작업을 해야한다.
.env
지우기Delete file
클릭git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 경로/경로/파일명.확장자' --prune-empty --tag-name-filter cat -- --all
.env
를 넣어주면 된다.[기록이 남아있는 브랜치] was rewritten
이라고 나타난다.--force
옵션을 통해 Push한다.위 과정을 마무리하면 Github Repository 어디에서도 .env
에 대한 내용을 찾을 수 없다.