ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Github - 저장소들을 합치고 싶을 때 (feat. subtree)
    카테고리 없음 2021. 6. 27. 20:16

    오늘도 한 걸음 내디뎠다.

     

    이 글에 들어오신 분들은 아마 저와 똑같은 고민을 하셨을 거예요. 

    깃허브를 체험하며 신나는 마음에 레파지토리를 이것저것 만들어 놨는데 

    하나의 레파지토리로 합치고 싶어진 거죠 ! 

    그럴 때를 위하여 간단하게 작성했습니다 ㅎㅎ

     


    1. 시나리오

    Apple, Banana, Orange 이 3개의 레파지토리를 FruitBox에 담을 것입니다.

    새 레파지토리로 이동하려는 기존의 레파지토리들
    기존의 레파지토리들을 담을 새 레파지토리

    기존 레파지토리 폴더 안에는 이렇게 Seed, Leaf, Fruit.html 파일들이 담겨 있다. 

    Apple 레파지토리의 내부

    하나 하면 다음 것은 반복작업이라 Apple 레파지토리를 옯겨 보겠습니다 

     


    2. 기존 저장소 복사하기

    git clone <FruitBox의 깃허브 주소>
    cd FruitBox

     터미널에 위 명령어를 적으면 github의 FruitBox가 내 폴더에 복제 된다.

    그리고 cd로 복제된 FruitBox로 이동해준다. 

    FruitBox에 아무것도 없어서 empty repository라 뜬다.

     

    여기서 Apple, Banana, Orange의 최종 목적지를 정리하면

    • Apple repository => FruitBox repository의 Apple 폴더 
    • Banana repository => FruitBox repository의 Banana 폴더
    • Orange repository => FruitBox repository의 Orange 폴더

    그래서 mkdir로 FruitBox 폴더 내에 Apple 폴더를 만들어준다.

     


    3. Apple을 FruitBox로 이사하기

    드디어 대망의 이사 !! 

    이번에 사용할 명령어는 이 두 줄이다.

    git subtree add --prefix=[로컬 디렉토리명] [저장소 명] [child에서 pull할 branch명]
    ls -lh Apple

     

    여기서 잠깐 Subtree란?

    • Subtree 실제로는 개별 프로젝트인 여러 개의 프로젝트를 개발자의 로컬에서 하나의 repo로 관리할 수 있게 해준다. SBD(system-based development)에 가까우며, 모든 저장소는 모든것을 포함하고, 각 부분을 수정 가능하다. 또한 코드와 이력이 그대로 복사되기 때문에 히스토리 관리하기 좋다. 

     

    댓글

Designed by Tistory.