문제
제목과 같이 gitignore이 안 된 채로 github에 .env 파일이나 node_modules 파일을 올린 경우 vscode에서 파일을 삭제하고 다시 git에 올리는 방법은 옳지 않다.
왜냐하면 제대로 삭제되지 않은 채로 기록이 남기 때문이다.
이번 프로젝트에서 팀원이 Mac을 사용했고, Mac에 호환되는 dist파일과 node_modules 파일을 git에 올려서 그걸 clone 받고 시작하게 되었는데 npm run start:dev 명령어를 통해 서버를 실행하게 되면 win32와 호환이 안된다는 오류가 발생했다.
해결
따라서 터미널에 다음과 같은 명령어를 통해 기록을 포함한 모든 데이터를 삭제해 준 뒤 다시 github에 올려야 한다.
(현재 프로젝트에서 Typescript와 NestJS를 사용하고 있어 dist폴더와 node_modules를 지워야 했다)
git rm -rf dist
git rm -rf node_modules
위의 명령어를 실행해주게 되면 파일들과 함께 남아있던 기록들이 모두 삭제되게 된다.
추가적으로 이 명령어 입력외에 추가적으로 dist, node_modules와 같은 파일들을 삭제해줘야 한다.(내 로컬에서 프로젝트를 실행할 때)
git status
github에 다시 올리기 전에 git status를 통해 정상적으로 삭제가 되었는지 확인해주는 것이 좋다.
git status에서 정상적으로 파일들이 삭제된 것을 확인했다면 git에 올리면 된다.
덧붙여서..
팀원들과 함께하는 프로젝트였고 초기 세팅을 git clone으로 받아온 후 내가 맡은 파트를 진행한 후에 서버를 켜서 구현이 잘 되나 확인하는 중 에러가 발생해 위의 방법을 사용하게 되었다.
초기 세팅이 잘못되어 있는 부분이었고 branch에 내가 작업했던 파일을 올리고 dist폴더와 node_modules 폴더는 업로드를 하면 안되는 상황이었다.
지금까지는 git add . 을 이용해서 모든 파일들을 한꺼번에 올리는 것만 해봤어서 일부 파일만 올리는 방법을 찾아봤다.
(진짜 쉽고 해볼만 한 부분이었지만 이제서야 해보게 됐다)
// 경로+파일명 사이에는 띄어쓰기로 구분
git add <경로+파일명> <경로+파일명> ...
이와 같은 형태로 여러 파일들을 내가 원하는 파일들만 골라 commit 할 수 있다.
'git' 카테고리의 다른 글
[Git] git merge 안전하게 하기 (2) | 2023.12.18 |
---|