깃허브, 노션

github 깃허브 레파지토리 하위 디렉토리 다른 레파지토리로 분리 : git split repo

LoGinShin 2024. 3. 6. 13:00
반응형

 

 

 

 

toy프로젝트를 레파지토리에 프로젝트 가볍게 만들어보는데 뭔가 잘 뽑힌 프로젝트는 다른 repository로 분류해서 보고 싶어 졌습니다.

그래서 a레파지토리의 디렉터리를 b레파지토리로 빼는 작업을 하려고 찾아봤습니다.

 

 

 

요약

  1. git subtree split -P <want split dir> -B <new temp branch>
  2. checkout
  3. git remote add origin <new repogitory>
  4. git push origin -u main
  5. 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
반응형