그룹 및 프로젝트 가져오기 및 이관

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

기존 프로젝트를 GitLab으로 가져오거나 GitLab 그룹 및 프로젝트를 다른 위치로 복사하려면 다음을 할 수 있습니다.

  • 직접 전송을 사용하여 GitLab 그룹 및 프로젝트를 이관합니다.
  • 지원되는 가져오기 소스에서 가져오기
  • 다른 가져오기 소스에서 가져오기

GitLab에서 GitLab으로 직접 전송하여 이관

다른 GitLab 인스턴스 간이나 동일한 GitLab 인스턴스 내에서 GitLab 그룹 및 프로젝트를 복사하는 가장 좋은 방법은 직접 전송을 사용하는 것입니다.

다른 옵션으로는 그룹 이관을 통해 GitLab 그룹을 이동할 수 있습니다.

또한 지원되는 가져오기 소스인 GitLab 파일 내보내기를 사용하여 GitLab 프로젝트를 복사할 수 있습니다.

지원되는 가져오기 소스

  • GitLab Self-managed 설치의 경우 모든 가져오기 기본 설정은 비활성화됩니다. 이 변경사항은 GitLab 16.0에서 도입되었습니다.

기본적으로 사용할 수 있는 가져오기 소스는 사용 중인 GitLab에 따라 달라집니다.

  • GitLab.com: 모든 사용 가능한 가져오기 소스가 기본적으로 활성화되어 있습니다.
  • GitLab Self-managed: 기본적으로 사용 가능한 가져오기 소스는 없으며 반드시 활성화해야 합니다.

GitLab은 이러한 지원되는 가져오기 소스에서 프로젝트를 가져올 수 있습니다.

가져오기 소스 설명
Bitbucket Cloud Bitbucket.org을 OmniAuth 공급자로 사용하여 Bitbucket 리포지터리를 가져옵니다.
Bitbucket Server Bitbucket Server(Stash로도 알려짐)에서 리포지터리를 가져옵니다.
FogBugz FogBugz 프로젝트를 가져옵니다.
Gitea Gitea 프로젝트를 가져옵니다.
GitHub GitHub.com 또는 GitHub Enterprise에서 가져옵니다.
GitLab 내보내기 GitLab 내보내기 파일을 사용하여 하나씩 프로젝트를 복사합니다.
Manifest 파일 Manifest 파일을 업로드합니다.
URL별 리포지터리 Git 리포지터리 URL을 제공하여 새 프로젝트를 만듭니다.

사용되지 않는 가져오기 소스 비활성화하기

신뢰할 수 있는 소스에서만 프로젝트를 가져오세요. 신뢰할 수 없는 소스에서 프로젝트를 가져오면 공격자가 민감한 데이터를 훔칠 수 있습니다. 예를 들어 악의적인 .gitlab-ci.yml 파일이 포함된 가져온 프로젝트는 공격자가 그룹 CI/CD 변수를 빼낼 수 있게 할 수 있습니다.

GitLab Self-managed자는 필요하지 않은 가져오기 소스를 비활성화함으로써 공격 가능한 표면을 줄일 수 있습니다:

  1. 왼쪽 사이드바에서 가장 아래쪽에 관리 영역(Admin Area)을 선택합니다.
  2. 설정 > 일반(General)을 선택합니다.
  3. 가시성 및 액세스 제어(Visibility and access controls)를 확장합니다.
  4. 가져오기 소스(Import sources)로 스크롤합니다.
  5. 필요하지 않은 가져오기 항목들의 확인란을 해제합니다.

기타 가져오기 소스

다음의 다른 가져오기 소스에서 가져오는 정보를 읽어볼 수도 있습니다:

Subversion에서 리포지터리 가져오기

GitLab은 Subversion 리포지터리를 자동으로 Git으로 마이그레이션할 수 없습니다. Subversion 리포지터리를 Git으로 변환하는 것은 어려울 수 있지만, 너무 작고 기본적인 리포지터리의 경우를 포함하여 다양한 도구가 있습니다.

  • git svn: 매우 작고 기본적인 리포지터리에 대해.
  • reposurgeon: 더 크고 복잡한 리포지터리에 대해.

프로젝트 가져오기 이력 보기

생성한 모든 프로젝트 가져오기를 볼 수 있습니다. 이 디렉터리에는 다음이 포함됩니다:

  • 외부 시스템에서 프로젝트가 가져와졌다면 소스 프로젝트의 경로 또는 GitLab 프로젝트가 마이그레이션된 경우 가져오기 방법.
  • 대상 프로젝트의 경로.
  • 각 가져오기의 시작 날짜.
  • 각 가져오기의 상태.
  • 에러 발생한 경우 오류 세부 정보.

프로젝트 가져오기 이력을 보려면:

  1. GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 가장 위쪽에 새로 만들기({plus})새 프로젝트/리포지터리를 선택합니다.
  3. 프로젝트 가져오기(Import project)를 선택합니다.
  4. 오른쪽 상단에서 이력(History) 링크를 선택합니다.
  5. 특정 가져오기에 대한 오류가 있으면 세부 정보(Details)를 선택하여 확인합니다.

이력에는 내장된 또는 사용자 정의 템플릿을 사용하여 만든 프로젝트도 포함됩니다. GitLab은 URL별 리포지터리를 이용하여 템플릿에서 새 프로젝트를 만드는 데 사용합니다.

LFS 객체를 포함하는 프로젝트 가져오기

LFS 객체를 포함하는 프로젝트를 가져올 때, 만약 프로젝트에 리포지터리 URL 호스트와 다른 URL 호스트(lfs.url)가 있는 .lfsconfig 파일이 있다면 LFS 파일은 다운로드되지 않습니다.

전문 서비스 사용하여 이관

원한다면 직접 이관하는 대신 GitLab 전문 서비스를 이용하여 GitLab 그룹 및 프로젝트를 이관할 수 있습니다. 자세한 내용은 프로페셔널 서비스 전체 디렉터리을 참조하세요.

문제 해결

가져온 리포지터리에 브랜치가 없는 경우

가져온 리포지터리에 소스 리포지터리의 모든 브랜치가 포함되어 있지 않은 경우:

  1. 환경 변수 IMPORT_DEBUG=true를 설정합니다.
  2. 다른 그룹, 서브그룹 또는 프로젝트 이름으로 가져오기를 다시 시도합니다.
  3. 일부 브랜치가 여전히 누락된 경우 importer.log를 검토합니다 (jq를 사용하여 예를 들어 importer.log을 조사합니다).