Git

[Git] commit 이력을 모두 포함해서 Git server 마이그레이션 하기

루다대디 2026. 4. 24. 16:33

최근 사내 Git 서버를 교체하게 되어 저장소 마이그레이션을 진행했다.

단순히 파일만 복사해서 옮기는 것이 아니라,

그동안 쌓아온 모든 커밋 이력(Commit History)을 온전히 보존해야 했다.

나중에 다시 마이그레이션을 할 때 참고하기 위해, 과정을 기록으로 남긴다.

 

이방법은 Git의 표준 기능을 이용하기 때문에

Github, GitLab, Bonobo 등 어떤 Git 서버간의 이동에도 동일하게 적용이 가능하다.


마이그레이션 전 준비사항

 

로컬 작업 내역 push

기존 서버에 Push하지 않은 로컬 작업 내용이 있다면 모두 Push하여 서버 상태를 최신으로 맞춘다.

 

신규 저장소 생성

마이그레이션 대상이 될 새로운 Git Server에 레파지토리를 미리 생성해둔다.


 

Step1. 기존 레파지토리 복제 (Mirror Clone)

먼저 PC 로컬에 임시 폴더를 생성한뒤

기존 Git Server에서 프로젝트의 레파지토리 주소를 복사한다.

 

그 다음 터미널에서 아래 명령어를 입력한다.

 

# 모든 커밋 이력과 브랜치를 포함하여 복제
git clone --mirror [기존_Bonobo_레포지토리_URL]

 

완료되면 로컬에 [프로젝트명.git] 형태의 폴더가 생성된다.

이 폴더는 단순 소스뿐만 아니라 모든 커밋 히스토리를 포함하고 있다.


Step2. 신규 서버로 Push (Mirror Push)

새로운 Git Server에서 생성한 프로젝트의 URL을 복사한다.

그후 방금 생성된 [프로젝트명.git] 폴더 안으로 진입하여 새 서버로 데이터를 밀어넣는다.

 

# 생성된 폴더로 진입
cd [프로젝트명.git]

# 새로운 GitLab 서버로 모든 이력 Push
git push --mirror [새로운_GitLab_URL]

 

마이그레이션이 완료 되면 새로운 Git Server에 커밋 이력이 정상적으로 옮겨져잇는지 확인한다.

*이제 위에서 생성된 [프로젝트명.git] 폴더는 삭제해도 무방하다


Step3. 로컬 설정 변경

마지막으로,

기존에 작업하던 로컬 프로젝트들이 새로운 서버를 바라보도록

원격 저장소 주소를 수정해야한다.

 

git remote set-url origin [새로운_GitLab_URL]