[git] Repository 내부 디렉토리를 다른 Repository로 분리하기

숭글·2022년 12월 13일
0

한 리포지토리에 여러 작은 프로젝트들을 함께 두다가
분리할 필요를 느껴 하나하나 옮기고 있다.
커밋 기록이 사라지지않게 분리하려고 검색해서 했다.

구조

분리 전 구조

42/
	cpp/
    pushswap/
    ...
    

분리 후 (희망)구조

42/

cpp/
	00/
    01/
    ...
    

분리

분리할 디렉토리를 위한 리포지토리를 미리 생성해둔다.

기존 리포지토리 내부로 path를 이동한다.

  • 분리할 폴더를 브랜치로 분리한다.
git subtree split -P <분리할 디렉토리> -b <임시 브랜치>
  • 분리한 브랜치를 가져올 임시 디렉토리를 생성 후 작업 디렉토리를 이동한다.
    - 기존 리포지토리 외부에 생성해야한다.
mkdir ../cpp
cd ../cpp
  • git init 명령어로 git repository임을 알려준다.
git init

++ master브런치가 아닌 main브런치에 올리고 싶어서 미리 브런치를 이동했다.

git checkout -b main
  • 분리해둔 브런치를 pull하여 가져온다.
git pull ../<기존 리포지토리> <임시 브런치>
  • 만들어둔 리포지토리에 연결한다.
git remote add origin <리포지토리 주소>
git remote -v

++ git log를 확인해서 잘 분리 됐는지 확인.

  • push해준다.
git push --set-upstream origin main

profile
Hi!😁 I'm Soongle. Welcome to my Velog!!!

0개의 댓글