본문 바로가기
SW Programming/형상관리

GIT 다른 저장소에 있는 소스코드 합쳐서 하나의 저장소로 관리하기

by Crystal.k 2020. 5. 11.

* 두개의 repo를 하나의 repo로 합쳐서 관리하고싶다.* 히스토리도 같이 복사하고 싶다.

* 로컬에 각각 저장소 형상을 clone해서 받아논 상황

 

현재 상황 

A repo : master

ㄴXXX (폴더)

ㄴYYY (폴더)

 

B repo : master

ㄴZZZ (폴더)

ㄴSSS (폴더)

 

원하는 형상

A repo

ㄴXXX

ㄴYYY

ㄴZZZ(B:master였음)

ㄴSSS(B:master였음)

#B Repo의 master Branch를 A Repo의 new_branch로 가져오고
# A 현재 브랜치에 합치기

$ cd A

$ git fetch ../B/ master:B_master
#B_marster 브랜치가 새로 생성됨

$ git merge B_master --allow-unrelated-histories

 

 

무서워서 로컬브랜치에서 작업하고 push 했는데, orgin으로 바로 해도 된다.

현재 branch와 머지할 때 --allow-unrelated-histories 옵션을 사용하는 이유는 이미 존재하는 두 프로젝트의 히스토리를 저장할 때 사용하는 옵션이다.

히스토리를 가진 이질적인 프로젝트를 merge를 하게 되면 fatal: refusing to merge unrelated histories 오류가 발생하는데 해당 옵션을 사용하면 해결할 수 있다.

아 참, tag들도 잘 따라옵니다.

 

 

같은 깊이가 아닌, 하위 폴더로 합치고 싶으면 참고하기

https://stackoverflow.com/questions/1683531/how-to-import-existing-git-repository-into-another

 

반응형

댓글