Git URL을 통한 마이그레이션
GitLab v19.1Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Git URL을 사용하여 기존 리포지터리를 가져옵니다. URL로 리포지터리 가져오기 소스가 활성화되어 있어야 합니다. 가져올 대상 그룹에 대한 Maintainer 또는 Owner 권한. 비공개 리포지터리를 가져올 경우, 비밀번호 대신 소스 리포지터리에 대한 인증된 접근을 위한 액세스 토큰이 필요할 수 있습니다.
Git URL을 사용하여 기존 리포지터리를 가져옵니다. 이 방법으로 수행하는 가져오기는 GitLab 이슈나 머지 리퀘스트를 포함하지 않습니다.
사전 요구사항#
히스토리
- GitLab 16.0에서 Developer 권한 대신 Maintainer 권한 요구사항이 도입되었으며, GitLab 15.11.1 및 GitLab 15.10.5에 백포트됨.
-
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"
}'
일부 공급자는 비밀번호를 허용하지 않으며 대신 액세스 토큰을 요구합니다.
시간 초과된 리포지터리 가져오기#
대형 리포지터리를 가져오는 경우 세 시간 후에 시간 초과될 수 있습니다. 시간 초과된 리포지터리를 가져오려면:
리포지터리를 클론합니다:
git clone --mirror https://example.com/group/project.git
--mirror 옵션은 모든 브랜치, 태그 및 refs가 복사되도록 합니다.
새 원격 리포지터리를 추가합니다:
cd repository.git
git remote add new-origin https://gitlab.com/group/project.git
모든 내용을 새 원격 리포지터리에 푸시합니다:
git push --mirror new-origin