git rm -rf

부가 설명
깃 히스토리에서 완전히 제거하기 ( .env 파일 등 )
Tags
 
 

git에 올리면 안되는 정보를 올린 경우

당연히 제거해야함!
 

1. .gitignore에 추가하기

.gitignore 파일에 추적을 원하지 않는 파일을 명시하여, 앞으로의 변경 사항이 git에 올라가지 않도록 설정한다.
# Secret file .env
.gitignore 파일에 추적하지 않을 파일을 명시하는 예시
💡
이미 올라가 있는 것을 없애는 것은 아님.
 

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
위 명령어를 수행하면 기존에 깃에 올라가있던 파일까지 다 지워지는 것을 볼 수 있다.
하지만 이건 깃 히스토리까지 완전히 비워주는 것은 아니므로, 히스토리를 통해 내용을 확인할 수 있으므로 완전히 이슈를 해결했다고는 볼 수 없다.