포폴 정리를 하다가 관리도 편하고 자동 배포도 편할 것 같아서 백엔드와 프론트엔드를 같은 레포에서 관리하고 있는 프로젝트를 따로 나누기로 했다.
기존 디렉토리는 아래와 같이 project라는 폴더 안에 frontend와 backend가 나뉘어져 있는 상태이고, project라는 폴더에서 backend 서브 디렉토리를 별도의 깃 레포로 분리하고자 한다.
project/
frontend/
backend/
1. 깃헙에 새롭게 만들 repo를 만들어준다. 나 같은 경우는 백엔드를 분리하는 거라 project-backend로 명명함.
2. 터미널에서 분리하고자 하는 프로젝트의 폴더로 이동 후 아래의 명령어를 입력한다. 분리하려는 서브 디렉토리의 '이름'을 입력하는 것이지 경로를 입력하는 것이 아님에 주의한다.
$ cd <프로젝트 경로>
$ git subtree split -P <분리하려는 서브 디렉토리 이름> -b <새로운 브랜치 이름>
//위 디렉토리 예시
$ cd project
$ git subtree split -P backend -b splitted
3. 분리한 디렉토리를 담을 새로운 폴더를 생성한 후 아까 split한 브랜치를 pull한다. 나는 remote repo와 이름을 똑같이 project-backend로 지어줬다. pull할때는 프로젝트의 경로를 입력해준다.
$ mkdir ~/<새로운 폴더이름> && cd ~/<새로운 폴더 이름>
$ git init
$ git pull <분리하려는 큰 프로젝트의 경로> <아까 만든 브랜치 이름>
//위 디렉토리 예시
$ mkdir ~/project-backend && cd ~/project-backend
$ git init
$ git pull ~/project splitted
4. 아까 remote에 만든 원격 저장소와 연결해주고 push 한 후 깃헙에서 확인하면 분리된 것을 확인할 수 있다.
$ git remote add origin <원격 레포지토리 주소>
$ git push -u origin master
//위 디렉토리 예시
$ git remote add origin https://github.com/theJunimo/project-backend
$ git push -u origin master
option. 만약에 project폴더에서 backend 디렉토리를 지우고 원격저장소에도 push하고 싶다면 아래와 같이 진행한다.
//project 폴더로 이동 후
$ git rm -rf backend
$ git add .
$ git commit -m "커밋 메세지"
$ git push -u origin master
참고자료
'Git' 카테고리의 다른 글
Github Actions를 이용해서 S3, CloudFront 배포 하기 (0) | 2021.04.03 |
---|---|
git push 403 error시 url 변경으로 해결하기 (0) | 2020.09.26 |
이미 깃헙 repo에 올라간 파일에 .gitignore 적용이 안되는 경우 (0) | 2020.04.13 |
잘못된 계정으로 push한 경우 commit의 author 변경하기 (0) | 2020.03.30 |