-
Github - 저장소들을 합치고 싶을 때 (feat. subtree)카테고리 없음 2021. 6. 27. 20:16
오늘도 한 걸음 내디뎠다.
이 글에 들어오신 분들은 아마 저와 똑같은 고민을 하셨을 거예요.
깃허브를 체험하며 신나는 마음에 레파지토리를 이것저것 만들어 놨는데
하나의 레파지토리로 합치고 싶어진 거죠 !
그럴 때를 위하여 간단하게 작성했습니다 ㅎㅎ
1. 시나리오
Apple, Banana, Orange 이 3개의 레파지토리를 FruitBox에 담을 것입니다.
기존 레파지토리 폴더 안에는 이렇게 Seed, Leaf, Fruit.html 파일들이 담겨 있다.
하나 하면 다음 것은 반복작업이라 Apple 레파지토리를 옯겨 보겠습니다
2. 기존 저장소 복사하기
git clone <FruitBox의 깃허브 주소> cd FruitBox
터미널에 위 명령어를 적으면 github의 FruitBox가 내 폴더에 복제 된다.
그리고 cd로 복제된 FruitBox로 이동해준다.
여기서 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)에 가까우며, 모든 저장소는 모든것을 포함하고, 각 부분을 수정 가능하다. 또한 코드와 이력이 그대로 복사되기 때문에 히스토리 관리하기 좋다.