별로 중요한 것도 없는데 늘어나기만 하는 레파지토리가 신경 쓰였다.
더 늘어나기 전에 카테고리별로 정리를 하고 싶어서 subtree를 이용해 정리를 하고자 했다.
💡 HOW TO?
1. 일단 합치고자 하는 부모 repository를 만든다. 참고로 빈 레파지토리에서 진행을 하려니 오류가 나서 README.md 파일을 생성하고 시작했다.
2. 새로 만든 부모 repository의 url을 복사한 후, git clone을 통해 내 local에 받는다.
git clone {새로 생성한 repository 주소}
3. 부모 레파지토리에 넣어줄 자식 레파지토리의 주소를 복사한 후, git remote add로 부모 레파지토리에 연결해준다. git remote -v로 연결이 잘 되었는지 확인해준다.
git remote add {지정할 remote 이름} {git repository 주소}
4. 방금 연결한 remote를 subtree로 등록해준다. 원격 브랜치 이름은 자식 repository에서 데려올(pull) 브랜치명을 사용했기 때문에 master나 main을 사용했다.
방금 open-stat-ui라는 명으로 remote를 생성했기 때문에 자식 remote 이름은 open-stat-ui가 되며, 부모 repository에 등록할 이름은 마음대로 지어도 되지만 자식 remote명과 동일하게 맞춰줬다.
git subtree add --prefix={부모 repository에 등록할 이름} {자식 remote 이름} {원격 브랜치 이름}
5. 원하는 자식들을 다 추가했으면, git push로 등록해주고, 기존의 널브러져 있던 자식 레파지토리들은 삭제해준다.
git push
잘 올라가져 있는 것을 확인할 수 있다.
📌 참고로 submodule은 subtree와 반대되는 개념인데, Subtree는 이와 같이 여러 개의 프로젝트를 하나로 합치는 역할을 하고 submodule은 말 그대로 여러 프로젝트를 나누는 것으로 큰 프로젝트를 여러 개 나눌 때 사용한다.
'개발 관련 > git' 카테고리의 다른 글
git blame - 코드 수정 내역 확인하기 (0) | 2023.03.27 |
---|---|
git status, log, show (0) | 2023.02.09 |
error: read error while indexing ./gradle/5.2.1/executionHistory (0) | 2021.10.13 |
원격 브랜치 정보 갖고 오기 - git fetch (0) | 2021.09.05 |
HEAD -> master, origin/master의 의미 (0) | 2021.09.04 |