본문 바로가기
ETC

[git] Repository (레포지토리, 폴더) 합치기

by dkswnkk 2021. 10. 20.

서론

깃허브에 여러 가지 레포지토리를 하나의 레포지토리에 커밋 기록을 유지한 채 전부 넣고 싶을 때가 있습니다. 한 레포지토리를 만들어 다른 레포지토리를 붙여 넣는 방법도 있지만 이전의 커밋 기록들이 유지되지 않아서 원하는 방법은 아니었습니다. 

커밋 기록을 유지하면서 여러 레포지토리를 하나의 레포지토리에 넣는(합치는) 방법을 한번 알아보겠습니다. 

가정

commit 기록을 유지한 채 새로 생성한 A레 포지에 B레포지를 넣는다.

1) clone 

git clone (repository 주소)

예시: git clone https://github.com/dkswnkk/A

만약 빈 폴더라면 아무 파일이나 생성하여 commit을 해주어야 합니다. (빈 폴더, 즉 폴더 안에 아무것도 없는 상태이면 안됩니다.)

2) 레포지토리를 합치는 과정

git subtree add --prefix=(해당 Repository 하위의 디렉터리 구조) (옮겨올 Repository 주소) (옮겨올 Repository의 branch)

예시: git subtree add --prefix=B https://github.com/dkswnkk/git-study main

(해당 Repository 하위의 디렉터리 구조)는 B레포지의 이름을 적습니다. (B레포지 속의 내용만 옮겨오지 B레포지 폴더와 함께 옮겨오지 않기 때문이다.) 즉 폴더를 생성하여 B레포지의 내용을 넣습니다.

3) push

이제 기존의 방법처럼 push 작업을 진행해주면 됩니다.(이때 따로 commit 메시지는 못 주는 듯합니다.)

댓글