Skip to main content

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

관리 셸을 사용하여 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
    

추가 참고 자료