(내일배움캠프) TIL(18) - 8주차: .gitignore 재적용, git rm -r --cached

Thomas·2023년 7월 11일
0
post-thumbnail

Spring Boot 프로젝트에서 application.properties 정보는 Github에 노출 될 경우 위험할 수 있다.

그래서 .gitignore에 application.properties 경로를 넣어 줘서 원격에 add,commit,push되는 추적을 피해줘야 한다.

그래서 이번 강의에서 .gitignore에 경로를 넣어줘서 포함을 시키지 않을려고 시도를 했는데
깃허브에 들어 가니 여전히 application.properties이 있었다...

문제는 .gitignore에 추가해도 여전히 추적이 되된다는 것이다!

기존 .gitignore에서 변경 관리를 추적하지 않기로 설정한 후, 수정이 들어갈 경우
이미 변경 관리에 의해 관리되고 있는 파일은 .gitignore에 등록하더라도 계속 추적이 되는 것이였다.

해결 방법은 변경관리가 추적하고 있는 캐시를 삭제 하고 다시 새로 커밋을 해주면 .gitignore 재적용이 된다.

git rm -r --cached .

여기서 중요한 포인트는 --cached 옵션이다
원격저장소에 잘못된 파일을 올렸을 떄 주로 사용하는 옵션으로 원격 저장소의 파일을 삭제하고 스테이지 공간에서 파일을 내리기 위해 사용한다!

초기 세팅한 모든 파일들이 스테이지로 내려간걸 알 수 있다.
다시 commit > push를 하게 되면
.gitignore에 application.properties 경로가 작동을 하여
이번에는 application.properties 파일이 원격저장소에 올라가지 않는다.


프로젝트 도중에 application.properties가 포함 된걸 발견 할 수도 있다.

이럴 경우는

git rm -r --cached application.properties

를 써주는데 이전에 application.properties의 내용을 백업을 해주자!
왜냐하면 위에 명령어를 치게 되면 원격 저장소에서 application.properties 파일을 내리는 동시에 로컬 저장소에서도 삭제가 되기 떄문이다!

실습을 해보겠다

현재 init commit을 해줄 떄
BeforeAfterTest는 제외하고 init commit을 해줬어야 했는데
실수로 모두 커밋을 해서 원격저장소에 원치 않는 파일도 올라간 상태이다!

git rm -r --cached /path/BeforeAfterTest
git rm -r --cached src/test/java/com/sparta/junit5practice/BeforeAfterTest.java 

위에 명령어를 쳐준다.

참고로 이번 실습은 .gitignore 재적용이 아니기 떄문에 스테이지로 내릴 파일의 백업은 따로 필요없다!


그러면 BeforeAfterTest가 다시 스테이지 공간에 들어온걸 볼수 있다.


다시 commit > push를 해준다


잘 들어 온걸 볼수 있다!!

사실 그냥 지울 필요 없이.. 주석처리 하나 해서 추가된 파일을 다시 커밋을 해주는 방법도 있다!!


결론

.gitignore에 있는걸 git rm -r --cached 하는 경우는 꼭 백업을 하고 돌리자!!

profile
Backend Programmer

0개의 댓글