Skip to main content

리포지토리 복제

리포지토리의 미러를 포크하지 않고 유지하려면 특수 클론 명령을 실행한 다음 새 리포지토리에 미러 푸시할 수 있습니다.

Platform navigation

원래 리포지토리를 리포지토리의 새 복사본 또는 _미러_로 푸시하려면 먼저 GitHub Enterprise Server 인스턴스에 새 리포지토리를 만들어야 합니다. 이러한 예제에서 exampleuser/new-repository 또는 exampleuser/mirrored는 미러입니다.

리포지토리 미러링

  1. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  2. 리포지토리의 베어 복제본을 만듭니다.

    git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
    
  3. 새 리포지토리에 미러 푸시합니다.

    cd OLD-REPOSITORY.git
    git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
    
  4. 이전에 만든 임시 로컬 리포지토리를 제거합니다.

    cd ..
    rm -rf OLD-REPOSITORY.git
    

Git 대용량 파일 스토리지 개체가 포함된 리포지토리 미러링

  1. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  2. 리포지토리의 베어 복제본을 만듭니다. 예제 사용자 이름을 리포지토리를 소유한 사람 또는 조직의 이름으로 바꾸고, 예제 리포지토리 이름을 복제하려는 리포지토리의 이름으로 바꿉니다.

    git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
    
  3. 방금 복제한 리포지토리로 이동합니다.

    cd OLD-REPOSITORY.git
    
  4. 리포지토리의 Git 대용량 파일 스토리지 개체를 끌어옵니다.

    git lfs fetch --all
    
  5. 새 리포지토리에 미러 푸시합니다.

    git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
    
  6. 리포지토리의 Git 대용량 파일 스토리지 개체를 미러에 끌어옵니다.

    git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
    
  7. 이전에 만든 임시 로컬 리포지토리를 제거합니다.

    cd ..
    rm -rf OLD-REPOSITORY.git
    

다른 위치에서 리포지토리 미러링

원래 위치에서 업데이트를 가져오는 것을 포함하여 다른 위치에 리포지토리를 미러링하려는 경우 미러를 복제하고 변경 내용을 주기적으로 푸시할 수 있습니다.

  1. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  2. 리포지토리의 미러링된 베어 복제본을 만듭니다.

    git clone --mirror https://HOSTNAME/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
    
  3. 푸시 위치를 미러로 설정합니다.

    cd REPOSITORY-TO-MIRROR
    git remote set-url --push origin https://HOSTNAME/EXAMPLE-USER/MIRRORED
    

    베어 클론과 마찬가지로 미러링된 클론에는 모든 원격 분기와 태그가 포함되지만, 가져올 때마다 모든 로컬 참조를 덮어쓰므로 항상 원래 리포지토리와 동일합니다. 푸시에 대한 URL을 설정하면 미러로의 푸시가 간소화됩니다.

  4. 미러를 업데이트하려면 업데이트를 가져오고 푸시합니다.

    git fetch -p origin
    git push --mirror