git에 올리면 안되는 정보를 올린 경우
당연히 제거해야함!
1. .gitignore
에 추가하기
.gitignore
파일에 추적을 원하지 않는 파일을 명시하여, 앞으로의 변경 사항이 git에 올라가지 않도록 설정한다.# Secret file .env
이미 올라가 있는 것을 없애는 것은 아님.
2. git에 이미 올라간 내용도 싹 지우기
결론부터 말하면 아래 커맨드를 활용하면 된다.
- 깃에 이미 올라가있는 부분까지 다 지운다.
- 히스토리에서도 내용을 볼 수 없도록 다 지운다.
# 1. 파일에 대한 내용을 완전히 삭제한다. $ git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch <삭제할파일>" HEAD # git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch .env" HEAD # 2. 위의 내용을 실제 깃에 반영한다. $ git push --force # force update를 해야 반영할 수 있음.
이제 히스토리를 보더라도 내용이 텅 비어있음을 확인할 수 있다.
⇒ 드디어 완전히 삭제됨!
git rm -r —cached
만 하면 안되는 이유
$ git rm -r --cached <파일명> # git rm -r --cached .env
위 명령어를 수행하면 기존에 깃에 올라가있던 파일까지 다 지워지는 것을 볼 수 있다.
하지만 이건 깃 히스토리까지 완전히 비워주는 것은 아니므로, 히스토리를 통해 내용을 확인할 수 있으므로 완전히 이슈를 해결했다고는 볼 수 없다.