이미 깃헙 repo에 commit후 push해버린 파일들을 추후에 .gitignore에 추가할 때가 있다.
예를 들면 node_modules 폴더를 초기에 .gitignore에 설정해놓지 않고 그냥 repo에 올려버렸는데, 나중에 .gitignore에 node_modules/ 를 추가하더라도 이미 git은 node_modules안의 파일들을 tracking 하고있기 때문에 이미 트랙킹 중인 파일들을 무시되지 않는다.
먼저 아래 명령어들에 대해 살펴보자.
rm <fileName>
git을 사용하지 않는 rm은 작업 디렉토리에서 파일을 삭제하는 명령어이다.
git rm <fileName>
git을 사용한 rm은 작업 디렉토리와 스테이징 영역에서 파일을 삭제 시킨다.
git rm --cached <fileName>
--cached를 뒤에 붙이면, 스테이징 영역에서만 파일이 삭제된다. 하지만 작업 디렉토리나 저장소에서는 삭제되지 않는다.
git add <fileName>
해당 파일에 대해 스테이징한다.
git add .
현재 디렉토리에서 수정/생상/삭제된 파일에 대해 스테이징한다.
git commit -m "<message>"
커밋 메세지와 함께 커밋한다.
위의 명령어들을 터미널에서 아래와 같이 사용한다.
$ git rm --cached .
//현재 디렉토리 기준 스테이징 된 파일을 모두 비움
$ git add .
//현재 디렉토리 기준 .gitignore가 적용된 작업트리를 다시 스테이징 시킴
$ git commit -m ".gitignore 파일 트랙킹하지 않도록 수정"
//커밋 메세지와 함께 새롭게 커밋 함
$ git push
//위의 커밋을 원격 저장소로 push함
.gitignore에 들어간 파일들은 삭제되고 나머지 원하는 파일들만 원격저장소에 올라가있는 것을 볼 수 있다.
참고자료
https://stackoverrun.com/ko/q/10277008
'Git' 카테고리의 다른 글
Github Actions를 이용해서 S3, CloudFront 배포 하기 (0) | 2021.04.03 |
---|---|
git push 403 error시 url 변경으로 해결하기 (0) | 2020.09.26 |
잘못된 계정으로 push한 경우 commit의 author 변경하기 (0) | 2020.03.30 |
레포지토리의 하위폴더를 분리해서 새로운 레포지토리로 만들기 (2) | 2020.03.07 |