로컬폴더는 유지하고 원격 repository에 있는 폴더 지우기

돌리의 하루·2023년 9월 21일
0

내 경우는 실수로 client 밖 경로에 node_modules폴더를 설치해 stomp.js의 모듈을 그곳에서 가져다 쓰고 있었다.

client .gitignore안에는 node_modules가 포함 되어 있었지만, client 밖에서는 없었기에 당연히 push가 되고 있었던 상황...

잉? 그럼 원격 저장소에 있는 폴더 삭제하고 client 밖에 .gitignore 설치해도 똑같이 작동하나 ㅎ_ㅎ?

라고 굳이 안해도 될 실험을 해보고 싶었다.

왜냐면..이렇게 해서 다른 곳에서 오류가 날지 안날지 궁금하니까 ^_^...

그래서 실험해본 결과는! 음! node_modules를 repository에 올라가지 않게 되었다!

그런데 문제는 우리 repository가 github로 CI/CD를 돌리고 있다는 거였다...

client폴더안의 workflows에서 npm i로 배포후 상황을 처리 하고 있었는데, 이렇게 되면 설치한 모듈이 배포 환경에서 정상적으로 작동이 안될것은 불보듯 뻔한 일..

그래서 아무튼 client밖에 있는 node_modules를 client안으로 합치고, (다른 프로젝트는 이 경우에 상황에 따라서 잘 대처하기 바란다..client가 아닌 폴더에서 모듈을 사용할 수도 있는 경우나, 안에 있는 패키지가 너무 많아서 합치게 되면 오류가 나는 상황이 벌어질수도 있다.. 나는 애초에 client밖의 모듈에서는 종속성 패키지가 몇 개 없었다)

원격 저장소의 node_modules를 삭제하기 위한 깃코드는 아래와 같다.

git rm -r --cached node_modules

git commit -m "노드 모듈 폴더 삭제"

git push origin 자기브랜치

이렇게 해피엔딩이 되었다 ^__^

깔 -- 끔

(아 다시 보니까 폴더 밖에 있는 파일들도 삭제해야겠다 ,,,)

++ 번외 ) 오늘 궁금해서 찾아본 것

.gitignore안에 nodemodules 설정할때,
1./node_modules
2.node_modules/
가 있는데, 두 개의 차이점은

1번은 루트 디렉토리에 있는 node_modules폴더만 무시,
2번은 프로젝트 안에 있는 모든 디렉토리의 node_modules를 무시한다.

profile
진화중인 돌리입니다 :>

0개의 댓글