Git URL을 통한 마이그레이션
GitLab v19.4Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
Git URL을 사용하여 기존 리포지터리를 가져옵니다. UI를 통해 리포지터리를 가져오려면 다음 단계를 수행합니다: 프로젝트 API를 사용하여 Git 리포지터리를 가져올 수 있습니다: 일부 공급자는 비밀번호를 허용하지 않으며 대신 액세스 토큰을 요구합니다.
Git URL을 사용하여 기존 리포지터리를 가져옵니다. 이 방식으로 수행한 가져오기에는 GitLab 이슈나 머지 리퀘스트가 포함되지 않습니다.
사전 요구사항#
- URL로 리포지터리 가져오기 소스가 활성화되어 있어야 합니다. 활성화되어 있지 않다면 GitLab 관리자에게 활성화를 요청합니다. URL로 리포지터리 가져오기 소스는 GitLab.com에서 기본적으로 활성화되어 있습니다.
- 가져올 대상 그룹에 대한 Maintainer 또는 Owner 권한.
- 비공개 리포지터리를 가져오는 경우, 비밀번호 대신 소스 리포지터리에 인증된 방식으로 접근하기 위한 액세스 토큰이 필요할 수 있습니다.
UI를 통해 리포지터리 가져오기#
UI를 통해 리포지터리를 가져오려면 다음 단계를 수행합니다:
- 오른쪽 상단 모서리에서 새로 만들기(+)와 새 프로젝트/리포지터리를 선택합니다.
- 프로젝트 가져오기를 선택합니다.
- URL로 리포지터리를 선택합니다.
- Git 리포지터리 URL을 입력합니다.
- 나머지 필드를 작성합니다. 비공개 리포지터리에서 가져오려면 사용자 이름과 비밀번호(또는 액세스 토큰)가 필요합니다.
- 프로젝트 생성을 선택합니다.
새로 생성된 프로젝트가 표시됩니다.
API를 통해 리포지터리 가져오기#
프로젝트 API를 사용하여 Git 리포지터리를 가져올 수 있습니다:
curl --location "https://gitlab.example.com/api/v4/projects/" \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <your-token>' \
--data-raw '{
"description": "New project description",
"path": "new_project_path",
"import_url": "https://username:password@example.com/group/project.git"
}'
일부 공급자는 비밀번호를 허용하지 않으며 대신 액세스 토큰을 요구합니다.
시간이 초과된 리포지터리 가져오기#
대용량 리포지터리 가져오기는 3시간이 지나면 시간 초과될 수 있습니다. 시간이 초과된 리포지터리를 가져오려면 다음 단계를 수행합니다:
-
리포지터리를 복제합니다:
git clone --mirror https://example.com/group/project.git--mirror옵션은 모든 브랜치, 태그, ref가 복사되도록 보장합니다. -
새 원격 리포지터리를 추가합니다:
cd repository.git git remote add new-origin https://gitlab.com/group/project.git -
모든 내용을 새 원격 리포지터리로 푸시합니다:
git push --mirror new-origin