본문 바로가기

개발 환경 & 행사/Git

서로 다른 git 저장소를 하나의 저장소로 합치기

git, github, gitlab

만약, git 저장소를 옮겨야한다면 어떻게 해야할까? 한 저장소를 clone 받아 다른 저장소로 옮기면 그만이다. 하지만, 그동안의 commit 내역들을 함께 저장하고 싶다면 어떻게 해야할까? 나는 gitlab에 올려둔 코드를 github에 옮기고 싶었다. 그래서 검색해본 결과 다음과 같은 방법이 있었다.

 

먼저, 2개의 repo가 있다고 가정하자. 이를 projectA, projectB라고 하자.

 

projectA를 projectB에 합치고 싶다면 다음과 같이 할 수 있다.

 

1. projectB의 로컬 저장소로 이동한다.

$ cd projectB

 

2. projectA의 저장소 주소를 복사한 후, path/to/projectA 위치에 붙여넣자.

$ git remote add projectA path/to/projectA
$ git remote -v

 

3. projectA를 fetch 해오자.

$ git fetch projectA --tags

 

4. projectA의 코드를 projectB에 합쳐보자.

특정 브랜치에서 projectA의 소스코드를 가져오려면, projectA/branch-name 에 명시해주자.

$ git merge --allow-unrelated-histories projectA/branch-name

 

5. 작업이 완료되었다면 추가했던 projectA를 지워주자

$ git remote remove projectA

 

반응형

'개발 환경 & 행사 > Git' 카테고리의 다른 글

[Mac OS X] Git 설치 및 초기 설정  (0) 2020.03.10