Skip to main content

이 버전의 GitHub Enterprise는 다음 날짜에 중단되었습니다. 2024-03-26. 중요한 보안 문제에 대해서도 패치 릴리스가 이루어지지 않습니다. 더 뛰어난 성능, 향상된 보안, 새로운 기능을 위해 최신 버전의 GitHub Enterprise Server로 업그레이드합니다. 업그레이드에 대한 도움말은 GitHub Enterprise 지원에 문의하세요.

관리 셸을 사용하여 다른 버전 제어 시스템에서 가져오기

관리 셸을 사용하여 Subversion, Mercurial, Team Foundation 버전 제어를 GitHub Enterprise Server의 Git 리포지토리로 가져올 수 있습니다.

누가 이 기능을 사용할 수 있는 있나요?

Site administrators can use the administrative shell to import data from other version control systems.

Mercurial에서 프로젝트 가져오기

  1. 에 SSH합니다. 인스턴스가 여러 노드로 구성된 경우(예: 고가용성 또는 지역 복제가 구성된 경우) 주 노드에 대한 SSH를 수행합니다. 클러스터를 사용하는 경우 임의 노드에 대해 SSH를 수행할 수 있습니다. HOSTNAME을 인스턴스의 호스트 이름 또는 노드의 호스트 이름이나 IP 주소로 바꿉니다. 자세한 내용은 "관리 셸(SSH)에 액세스"을(를) 참조하세요.

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 아래 명령으로 원시 복제본을 만들어 원본 프로젝트의 URL 및 임시 리포지토리에 대한 경로를 지정합니다.

    $ git-import-hg-raw HG-CLONE-URL/PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
    
  3. /PATH/REPO-NAME.git/git-import/raw-authors.csv에서 쉼표로 구분된(CSV) 파일을 검토합니다. 다음 열을 포함해야 합니다.

    • ID: 원래 리포지토리에 저장된 작성자 및 고유한 식별자
    • NAME: 원래 리포지토리에 저장된 작성자

    원래 리포지토리의 작성자를 전자 메일 주소 및 이름으로 매핑하려면 열이 있는 새 CSV 파일을 만듭니다ID,(ignored),GIT_EMAIL,GIT_NAME. 이 CSV 파일을 사용하여 어느 작성자 정보이든 "GIT_EMAIL" 및 "GIT_NAME"가 있는 "ID"로 바꿀 수 있습니다.

    예를 들어 전자 메일 주소 octocat@github.com와(과) 이름 The Octocat이(가) 있는 새로운 사용자에게 원래 작성자 ID octocat@111111-2222-3333-4444-55555555555을(를) 매핑하려면 CSV 파일에 다음 줄이 포함되어야 합니다.

    octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. CSV 파일을 사용하여 작성자 및 분기를 다시 작성합니다.

    git-import-rewrite --flavor hg --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
    
  5. 아직 만들지 않은 경우 GitHub Enterprise Server에 새로운 빈 리포지토리를 만듭니다.

  6. 현재 작업 디렉터리를 로컬 리포지토리로 변경합니다.

  7. 가져온 리포지토리를 GitHub Enterprise Server에 푸시합니다.

    git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE
    

Subversion에서 프로젝트 가져오기

  1. 에 SSH합니다. 인스턴스가 여러 노드로 구성된 경우(예: 고가용성 또는 지역 복제가 구성된 경우) 주 노드에 대한 SSH를 수행합니다. 클러스터를 사용하는 경우 임의 노드에 대해 SSH를 수행할 수 있습니다. HOSTNAME을 인스턴스의 호스트 이름 또는 노드의 호스트 이름이나 IP 주소로 바꿉니다. 자세한 내용은 "관리 셸(SSH)에 액세스"을(를) 참조하세요.

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 아래 명령으로 원시 복제본을 만들어 원본 프로젝트의 URL 및 임시 리포지토리에 대한 경로를 지정합니다.

    $ git-import-svn-raw SVN-CLONE-URL /PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
    
  3. /PATH/REPO-NAME.git/git-import/raw-authors.csv에서 쉼표로 구분된(CSV) 파일을 검토합니다. 다음 열을 포함해야 합니다.

    • ID: 원래 리포지토리에 저장된 작성자 및 고유한 식별자
    • NAME: 원래 리포지토리에 저장된 작성자

    원래 리포지토리의 작성자를 전자 메일 주소 및 이름으로 매핑하려면 열이 있는 새 CSV 파일을 만듭니다ID,(ignored),GIT_EMAIL,GIT_NAME. 이 CSV 파일을 사용하여 어느 작성자 정보이든 "GIT_EMAIL" 및 "GIT_NAME"가 있는 "ID"로 바꿀 수 있습니다.

    예를 들어 전자 메일 주소 octocat@github.com와(과) 이름 The Octocat이(가) 있는 새로운 사용자에게 원래 작성자 ID octocat@111111-2222-3333-4444-55555555555을(를) 매핑하려면 CSV 파일에 다음 줄이 포함되어야 합니다.

    octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. CSV 파일을 사용하여 작성자 및 분기를 다시 작성합니다.

    git-import-rewrite --flavor svn --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
    
  5. 아직 만들지 않은 경우 GitHub Enterprise Server에 새로운 빈 리포지토리를 만듭니다.

  6. 현재 작업 디렉터리를 로컬 리포지토리로 변경합니다.

  7. 가져온 리포지토리를 GitHub Enterprise Server에 푸시합니다.

    git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE
    

Team Foundation 버전 제어에서 프로젝트 가져오기

  1. 에 SSH합니다. 인스턴스가 여러 노드로 구성된 경우(예: 고가용성 또는 지역 복제가 구성된 경우) 주 노드에 대한 SSH를 수행합니다. 클러스터를 사용하는 경우 임의 노드에 대해 SSH를 수행할 수 있습니다. HOSTNAME을 인스턴스의 호스트 이름 또는 노드의 호스트 이름이나 IP 주소로 바꿉니다. 자세한 내용은 "관리 셸(SSH)에 액세스"을(를) 참조하세요.

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 아래 명령으로 원시 복제본을 만들어 원본 프로젝트의 URL 및 임시 리포지토리에 대한 경로를 지정합니다.

    $ git-import-tfs-raw TEAM-FOUNDATION-CLONE-URL /PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
    
  3. /PATH/REPO-NAME.git/git-import/raw-authors.csv에서 쉼표로 구분된(CSV) 파일을 검토합니다. 다음 열을 포함해야 합니다.

    • ID: 원래 리포지토리에 저장된 작성자 및 고유한 식별자
    • NAME: 원래 리포지토리에 저장된 작성자

    원래 리포지토리의 작성자를 전자 메일 주소 및 이름으로 매핑하려면 열이 있는 새 CSV 파일을 만듭니다ID,(ignored),GIT_EMAIL,GIT_NAME. 이 CSV 파일을 사용하여 어느 작성자 정보이든 "GIT_EMAIL" 및 "GIT_NAME"가 있는 "ID"로 바꿀 수 있습니다.

    예를 들어 전자 메일 주소 octocat@github.com와(과) 이름 The Octocat이(가) 있는 새로운 사용자에게 원래 작성자 ID octocat@111111-2222-3333-4444-55555555555을(를) 매핑하려면 CSV 파일에 다음 줄이 포함되어야 합니다.

    octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. CSV 파일을 사용하여 작성자 및 분기를 다시 작성합니다.

    git-import-rewrite --flavor tfs --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO_NAME.git
    
  5. 아직 만들지 않은 경우 GitHub Enterprise Server에 새로운 빈 리포지토리를 만듭니다.

  6. 현재 작업 디렉터리를 로컬 리포지토리로 변경합니다.

  7. 가져온 리포지토리를 GitHub Enterprise Server에 푸시합니다.

    git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE
    

추가 참고 자료