SW Programming/형상관리
GIT 다른 저장소에 있는 소스코드 합쳐서 하나의 저장소로 관리하기
Crystal.k
2020. 5. 11. 11:39
* 두개의 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
반응형