프로젝트를 진행하며 github에 파일을 올리는 상황에서 답답한 상황이 생겼었습니다. 혼자만 진행하는 프로젝트 였기에 로컬에 있는 db만 사용하며 보안이 크게 중요하지 않았기에 application.properties도 그냥 github에 업로드 했습니다. 그러나 최근 heroku를 통해 배포를 하면서 heroku의 postgreSQL을 사용하게 되었고 이 클라우드 DB의 id와 password는 지켜줘야 겠다 생각이 들어 .gitignore에 추가하기로 맘을 먹었습니다.
그래서 git rm --cached ~~application.properties
를 입력해서 원격 저장소의 application.properties 파일을 삭제한 뒤 .gitignore에 해당 파일을 추가하였습니다. 하지만 계속해서 application.properties는 자신의 존재감을 드러내고 있었습니다.
그래서 gitignore에 작성을 잘못 한 것인가 해서 문제점을 파악하기 시작했습니다.
git ignore 설정참고 - https://donggov.tistory.com/30
그렇게 검색을 하다보니 '!'표시가 해당 파일은 무시하지 않는다 라는 것을 알게 되었고, 다시 올바르게 작성을 하게 되었습니다. ( !가 뭔지도 모르고 붙였었습니다. )
!**/src/main/resources/application.properties #!가 붙으면 해당 파일은 무시하지 않는다는 뜻
**/src/main/resources/application.properties #이렇게 해야 해당 파일을 무시할 수 있습니다.
하지만 그럼에도 application.properties는 아직도 제외되지 않고 버티고 있었습니다. 결국 두 번째 원인에서 해결이 되었는데 간단한 문제였습니다.
현재 제가 작업 중인 프로젝트 FFTL-02-CommentBoard는
fftl-02-front/
fftl-02-Spring/
.gitignore
.
.
와 같은 형태로 두개 이상의 프로젝트를 포함하고 있는 포괄?형태의 repository였습니다. 그리고 해당 루트 디렉토리에 존재하는 .gitignore 를 이용한 제외를 하고 있었는데 여기에 입력해도 제외가 안되고 있었습니다.
여기서 특이점이 fftl-02-front와 fftl-02-Spring 두가지 모두 heroku를 통해서 배포를 하게 되었고 각각이 heroku 배포를 위한 git 이 각각 생성되어 있는 상태였던 것입니다. 그리고 여기서 문제점이 있는데 이 각각의 git 을 사용하면서 fftl-02-front와 fftl-02-Spring 내부에 각각이 .gitignore을 포함하고 있었고 마침 제가 제외하고 싶던 application.properties를 포함하고 있는 fftl-02-Spring의 .gitignore에 !**/src/main/resources/*.properties
가 존재했기에 바깥 .gitignore에서 제외를 하더라도 여기서 다시 제외하지 않음이 되어버렸던 것입니다.
이 fftl-02-Spring/.gitignore의 !**/src/main/resources/*.properties
를 제거하고 나니 파일이 제외가 잘 되었으며 원하던 목적을 이루게 되었습니다.
git을 이용할 때 루트디렉토리에 .gitignore이 존재하더라도 각각 내부 디렉토리에 .gitignore를 추가 할 수 있다는 것을 알게되었습니다. 또 루트디렉토리에서 한 명령보다 내부 디렉토리에서 한 명령이 더 우선권을 가지게 되는 것을 알게 되었습니다. (css와 비슷한 느낌?)
지금까지 .gitignore를 그닥 신경쓰지 않았는데 이번 기회에 조금 더 자세히 알게되어 유익한 시간이었습니다.