.gitignore 파일은 github에 올릴 필요가 없는 파일이 있을 때 그 파일들을 관리해주는 파일이다.
예를 들어 IDE의 설정 파일, 프로젝트의 빌드 파일들은 github에 올릴 필요가 없다. 또한 개인정보가 쓰인 코드들 (database, API 사용 등등)은 github에 절대 올라가면 안 된다. 보안 문제가 생긴다!
이런 파일들을 .gitignore에 써주면 된다
그런데, .gitignore에 파일명을 적었는데도 github에 파일이 올라가는 경우가 있다.
바로 이미 git이 추적하고 있는 (관리가 되어지고 있는) 파일들이 이러하다.
(.gitignore에 파일명을 잘못 입력했을 때, github에 올라가면 안 되는 파일을 뒤늦게 알았을 때 등 이런 문제가 생긴다.)
이미 git의 관리에 들어간 파일들을 단순히 .gitignore에 써준다고 해서 뿅 하고 그 파일이 git의 관리에서 빠져나가지 않는다는 것!
이유는 git에 남아있는 cache때문이라고 한다! 이 cache를 없애줘야 내가 원하는 파일을 .gitignore에 정상적으로 추가할 수 있다.
[깃 캐시 없애는 법 (.gitignore 다시 적용하기)]
1. 루트폴더(최상의폴더)에서 깃 배시를 연다.
2. 아래 명령어를 입력해준다.
git rm -r --cached .
(이렇게 입력하면 git이 관리하고 있는 모든 파일들의 캐시를 삭제하겠다는 명령어가 된다.)
또는
git rm -r --cached 파일명
(이렇게 입력하면 입력한 특정 파일만 캐시가 삭제된다. 캐시를 삭제할 파일이 몇 개 안된다면 이렇게 하는 걸 추천)
3. 결과
git rm -r --cached . 명령어를 입력해줄 경우 이렇게 git이 관리하고 있는 모든 파일들의 cach가 삭제된다. (실제 파일이나 깃헙에 올라간 파일들이 지워지는 것은 아니다!)
4. 캐시를 삭제한 후 git status 명령어로 파일들의 상태를 살펴보면, '.gitignore파일에 수정사항이 있다, application.yml과 mail.properties는 삭제되었다(git의 관리에서 빠졌다.)' 라는 것을 알 수 있다. (캡쳐 못함 ㅜㅜ)
5. 그리고 평소 하던대로 add, commit, push를 하면 .gitignore에 내가 지정한 파일이 잘 적용된 것을 확인할 수 있다.
참고로 난 .gitignore에 개인정보가 들어간 아래 세 파일을 추가해줬는데, kakaopayment.js는 새로 추가된 파일, application.yml과 mail.properties는 git이 이미 관리를 하고 있던 파일이었다.
kakaopayment.js 파일은 git의 관리에 애초에 없었고, git이 관리하기 전에 .gitignore에 추가해줬기 때문에 아예 Git Statging에도 뜨지 않는 것을 볼 수 있다!!!
**참고**
git rm의 옵션들
-r : recursive removal - 폴더 안에 다른 파일이 있으면 그 폴더를 지우지 못한다. 그래서 폴더를 지우기 전에 안에 있는 내용을 반복적으로 비워주고 지우겠다는 옵션이다.
--cached : only remove from the index - index에만 지워준다는 말은 Stage Area에서 내려주겠다는 옵션이다. 이 옵션을 사용하면 git에 있는 인덱스 파일만 삭제하고 실제 파일은 삭제되지 않는다.
명령어 대상 파일
. : 현재 디렉터리를 뜻한다. root 디렉토리에서 .을 사용하면 Working Directory 안의 모든 파일이 작업 대상이 된다.
'GIT' 카테고리의 다른 글
[GIT] github 보안 취약점 알림 해결방법 (0) | 2022.07.30 |
---|---|
[GIT] git 토큰 만료 되었을 때 재발급 받기. GitBash에서 토큰 변경하기 (0) | 2022.02.15 |
[GIT] 자주쓰는 git 명령어 모음 (2) | 2022.02.07 |
댓글