Tech

GitLab에서 GitHub으로 레포지토리 마이그레이션

hongcoder 2025. 8. 28. 22:03

사내 서버 개편으로 인해 GitLab에서 GitHub으로 레포지토리를 마이그레이션 할 일이 생겼다.

흔하게 할 수 있는 경험은 아니라고 생각해서 기록해 두려고 한다.


GitLab에서 GitHub으로의 완벽한 마이그레이션은 불가능하다.

GitLab은 MR(Merge Request), GitHub은 PR(Pull Request)로 소스코드 병합이 이뤄진다. (사실상 같은거임)

각 소스코드 저장소 마다 병합 명칭이 달라서 MR을 PR로 완벽하게 변환하는 것은 불가능하다.

 

하지만 흉내내는 정도로 데이터를 마이그레이션을 하는 방법이 존재한다.

 

GitHub - piceaTech/node-gitlab-2-github: Migrate Issues, milestones etc from gitlab to github

Migrate Issues, milestones etc from gitlab to github - piceaTech/node-gitlab-2-github

github.com

해당 레포지토리를 이용하면 된다.

 

첫번째로 GitLab에 존재하던 저장소를 GitHub으로 전체 이력을 포함하여 이전한다.

 

클론하기 전에 이전할 GitHub에 완전히 비어있는 레포지토리를 생성한다. (README.md 절대 만들면 안댐)

git clone --mirror <GITLAB_REPO_URL>
git remote set-url --push origin <GITHUB_REPO_URL>
git push --mirror

 

GITLAB_REPO_URL : 이전해야하는 GitLab 레포 주소

GITHUB_REPO_URL: 이전할 GitHub 레포 주소

 

이렇게 하면 git 히스토리 및 브랜치 전체가 마이그레이션 된다.

 

MR을 PR로 변경?흉내? 비스무리한거 하기 위해서 위에서 언급한 레포를 클론해서 사용하면 된다.

사용하기 이전에 알아야 하는것은 머지후에 브랜치를 지운 머지 기록은 이슈에 기록된다.

 

필자의 경우에는 상관 없어서 해당 도구로 기존 MR을 이슈로 다 옮겼다.

git clone https://github.com/piceaTech/node-gitlab-2-github.git
cd node-gitlab-2-github
npm install

## 설정 파일 적용 후 ##

npm run start

 

설정 파일의 경우에는 GitHub에는 사용자가 옮겨야하는 레포지토리에 대한 모든 권한이 있어야한다. like PAT.

PAT 발급해서 설정파일에 넣어주고 GitLab도 마찬가지로 토큰발급 받아서 넣어줘야 한다.

해당 내용은 node-gitlab-2-github 레포지토리 설명에 자세하게 나와있다.

 

MR 500개 기준 필자는 1시간정도 걸렸다.

 

GitHub의 API 호출 정책 때문에 꽤 많이 걸린다.


본 글에서 사용된 이미지와 예제는 이해를 돕기 위한 것이며, 실제 환경과 다를 수 있음.

또한 일부 내용에는 오타나 정보의 불완전함이 있을 수 있으니, 반드시 공식 문서 및 최신 자료를 참고하시기 바람.

AI 창작물이 아님.

'Tech' 카테고리의 다른 글

네트워크 캐스팅 방식  (2) 2025.09.01
kubeflow on kubernetes  (1) 2025.08.29
Load Balancing?  (3) 2025.08.28
Kubernetes에서 Ray Cluster 구축해보기  (0) 2024.12.05
docker hub에 내 이미지 올려서 사용하기.  (0) 2024.11.25