본문 바로가기
Git

[Git] GitHub Repository 합치기

by snow_white 2022. 6. 5.

포트폴리오를 작성하면서 하나의 프로젝트를 깃허브의 여러 레포지토리로 나누어 생성되어 있는 것을 

하나의 레포지토리로 보기 쉽게 정리하는 계기가 되었다.

 

 

1. Remote Repository 생성

먼저 깃허브에 '하나의 레포지토리'를 새로이 생성해보자.

이 레포지토리에 합치고 싶은 레포지토리들을 모두 넣을 것이다.

 

새로 만든 레포지토리를 부모, 합쳐질 레포지토리들을 자식이라고 하자.

깃허브에서 새로운 레포지토리 생성
clone할 url 복사

 

2. Git bash에서 Local과 Remote Repository 연결

(🔅로컬 환경에 Git bash가 설치되어 있다는 가정 하에 진행합니다.)

하단 작업 표시줄의 시작 버튼을 눌러 Git bash를 실행한다.

아래 명령어를 입력하여 생성한 레포지토리를 clone 작업한다.

$ git init 		#깃 초기화
$ git clone <url>	#부모 레포지토리 클론

 

3. Remote 추가

(참고) 저는 위의 2. 상황을 보면 루트 위치에서 Mobius_HMS라는 레포지토리를 clone 했지요?

이후 폴더 위치를 변경해서 아래와 같이 cd 명령어로 하위 폴더로 옮겨간 것이기 때문에 신경 안 쓰셔도 됩니다~

(gitbash 사용할 때 C드라이브>사용자>git 이라는 폴더를 만들어놨기 때문에 git 폴더 아래로 Mobius_HMS 폴더를 옮겼다는 의미입니다.)

 

다시 본론으로, 아래와 같은 명령어를 실행하여 remote명과 함께 remote할 레포지토리의 url를 입력해준다.

저는 child1부터 child4까지 총 4개의 레포지토리를 자식으로 만들었습니다.

$ git remote add <리모트명> <레포지토리 url>

추가된 remote 확인한다.

$ git remote -v

 

4. Subtree 생성

저장할 폴더명과 함께 자식 레포지토리의 remote명(위에서 지정한 child1, child2, ..)을 지정하여 부모 레포지토리(main)에 합친다.

 

저 같은 경우에는 4개의 remote를 추가했기 때문에 아래 과정을 총 4번 수행했습니다.

$ git subtree add --prefix=<저장할 폴더명> <자식 레포지토리의 remote명> <부모 레포지토리의 브랜치>

저장할 폴더명 : android&nbsp; /&nbsp; remote명 : child4

 

5. Push 진행

늘 변경사항이 생기면 commit 뒤에 push로 마무리 해줘야죠?

 

6. 레포지토리 합치기 성공

깃허브의 부모 레포지토리를 보시면 아래와 같이 자식 레포지토리들이 모여 하나로 합쳐진 것을 볼 수 있습니다.

 

추가로 자식 레포지토리들을 삭제해도 부모 레포지토리에는 영향을 받지 않으므로 안심하고 자식 레포지토리들은 삭제 해도 됩니다.

'Git' 카테고리의 다른 글

[Git] gitmoji 설치  (1) 2023.01.11
[Git] Git 브랜치 이름 변경하기  (0) 2023.01.10
[Github] VScode와 Github 레포지토리 연결  (0) 2022.04.12
[Git] branch | branch 다루기  (0) 2022.03.14
[Git] 과거 내역으로 돌아가는 방법  (0) 2022.03.14

댓글