728x90
팀 깃허브 프로젝트에 application.yml이 올라가는 대참사가 발생했다.
심지어 내 repo도 아니라 삭제해서 다시 올릴 수도 없다.
1. application.yml 파일 githhub 에서 삭제하기 + 커밋
application.yml은 build 폴더에도 있고 main/resources 에도 있으니 둘 다 삭제해야한다.
현재 프로젝트 파일에서 두개의 application.yml을 지우자.
2. .gitignore에 **/application.yml 추가하기
추가하고 다시 커밋을 하자.
3. application.yml 캐시 삭제하기
이미 yml은 추적당하고 있다..... 추적에서 제외시키자
git rm -r --cached .
위처럼 모든 캐시를 삭제해도 되고, 그냥 파일 지정해서 삭제해도 된다.
그리고 git add . -> git commit -> git push까지 하기
4. git의 로그에서는 application.yml이 존재한다.
삭제해도 이전 커밋들에서 application.yml을 볼 수 있다.
git filter-branch -f --prune-empty --index-filter "git rm -r --cached --ignore-unmatch **/application.yml" HEAD
위는 모든 커밋에서 application.yml을 지운다는 말이다.
rewrite에 성공했다고 뜬다.
만약 application.yml이 fork한 repo뿐만 아니라 기존 repo까지 올라왔다면... 위 작업을 fork 한 레포에서 하고, remote repo에서도 해야한다.
누군가 그새 application.yml을 포크했다면!! 포크한 repo는 그 상태 그대로 yml을 간직하고 있으므로 그 repo에서도 위 작업을 해야한다....ㅎ
그 후 강제 push (git add 안해도 그냥 된다.)
git push -u origin master --force
후우우우우우우...
캐시와 깃허브 커밋들에 올라간 모든 application.yml 까지 모조리 박멸에 성공했다
오랜만에 새벽에 심장이 울렸다.
그래도 배울 수 있어 다행이다.
728x90
'문제&해결' 카테고리의 다른 글
도커 컨테이너의 ip 주소는 왜 127.0.0.1(localhost)가 아닐까? (0) | 2024.03.09 |
---|---|
로컬, docker 컨테이너 포트 충돌 : 포트 관리 중요성 (mysql) (0) | 2024.03.09 |
웹소켓 취약점 해결 : 인증 도입 (STOMP, Jwt, Spring Security) (3) | 2024.02.20 |
도커 volume 설정 + 환경 변수를 사용하여 H2 DB Url을 동적으로 설정하기 (로컬 / Docker 환경) (0) | 2024.01.30 |
[스프링 시큐리티] Spring Security의 Filter에서 의존성 전달받기 (빈 주입) (0) | 2024.01.24 |