깃허브, 노션
github 깃허브 레파지토리 하위 디렉토리 다른 레파지토리로 분리 : git split repo
LoGinShin
2024. 3. 6. 13:00
반응형

toy프로젝트를 레파지토리에 프로젝트 가볍게 만들어보는데 뭔가 잘 뽑힌 프로젝트는 다른 repository로 분류해서 보고 싶어 졌습니다.
그래서 a레파지토리의 디렉터리를 b레파지토리로 빼는 작업을 하려고 찾아봤습니다.
요약
- git subtree split -P <want split dir> -B <new temp branch>
- checkout
- git remote add origin <new repogitory>
- git push origin -u main
- merge
사용하는 Tool
- github desktop
- git bash
- github site

단순하게 그림으로 표현하면 위와 같습니다.
기본적인 원결과 로컬 관리
git 명령어 사용법은 찾아봐주시면 감사하겠습니다.
깃허브 사용하는데 위에 2개 모르는데 디렉터리를 다른 레포지토리에 나눌일은 없겠죠.
git subtree split -P <분리할 디렉터리> -b <임시 저장할 브렌치>
를적어서 한 폴더를 브랜치로 나눠줍니다.
git subtree split -P whatIsThisTeacher -b temp

새로운 branch로 뻗은 모습↓↓↓

새로운 디렉터리를 만들어서 pull 사용해도 좋지만 저는 새로운 레파지토리를 먼저 만들어서 clone 한 다음에 push 해주겠습니다.
기존 레파지토리를 나눈 브랜치에서 remote를 만든 레파지토리에 걸고 push 해주시면 됩니다.
새로 만든 레파지토리 ↓↓↓

기존 브렌치에 이미 remote 되어있는 것을 끊어주고 새로 만든 레파지토리에 걸어주겠습니다.
git remote remove <remote name>
SOLUTION_SHINJH@DESKTOP-2CRPE2T MINGW64 /c/workspace/github/LoGin_ToyProjectPlayGround (temp)
$ git remote remove origin
SOLUTION_SHINJH@DESKTOP-2CRPE2T MINGW64 /c/workspace/github/LoGin_ToyProjectPlayGround (temp)
$ remote
bash: remote: command not found
SOLUTION_SHINJH@DESKTOP-2CRPE2T MINGW64 /c/workspace/github/LoGin_ToyProjectPlayGround (temp)
$ git remote add origin https://github.com/loginshin/whatIsThisTeacher
위와 같이 연결돼 있는 것을 끊고 새로 연결해 주는 코드입니다.
git push origin -u main
깃허브에 commit 내역 포함 복사되어서 push 할 수 있습니다.

이제 temp에서 main으로 merge 해주면 commit 메시지 가지고 오는 걸 볼 수 있습니다.

728x90
반응형